BUG: Call IPropertyPage::GetPageInfo on Stock Property Pages of MsStkPrp.dll Can Give Unhandled Exception (252297)



The information in this article applies to:

  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0
  • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q252297

SYMPTOMS

If you call IPropertyPage::GetPageInfo on any of the stock property pages (CLSID_StockColorPage, CLSID_StockFontPage, or CLSID_StockPicturePage) exported from MsStkPrp.dll, you may receive an unhandled exception.

RESOLUTION

Work around this problem by setting the property page site; call IPropertyPage::SetPageSite, and pass a pointer to an implementation of IPropertyPageSite immediately after using the CoCreate function of the property page object or anytime before you call GetPageInfo.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

You may encounter this problem if you are developing your own custom property frames and fail to site the property page object properly.

Steps to Reproduce Behavior

If you have code similar to the following in your component, you receive the error described in the "Symptoms" section.
	HRESULT hr;
	CAUUID pages;
	CComPtr<IPropertyPage> pPropertyPage;

	CComPtr<ISpecifyPropertyPages> pStockPage;
	hr = this->QueryInterface(IID_ISpecifyPropertyPages, (void **)&pStockPage);

	if (SUCCEEDED(hr))
		hr = pStockPage->GetPages(&pages);

	if (SUCCEEDED(hr))
		hr = ::CoCreateInstance(pages.pElems[0], NULL, CLSCTX_ALL , IID_IPropertyPage, (void **)&pPropertyPage);

	if (SUCCEEDED(hr))
	{
		PROPPAGEINFO pageInfo;
		memset(&pageInfo, 0, sizeof(PROPPAGEINFO));
		pageInfo.cb = sizeof(PROPPAGEINFO);
		
		// Will give unhandled exception here....
		hr = pPropertyPage->GetPageInfo(&pageInfo);
		if (SUCCEEDED(hr))
		{
			// Do something.
		}
	}
				

Modification Type:MajorLast Reviewed:12/11/2003
Keywords:kbArchitecture kbbug kbpending kbPropSheet KB252297