Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
This topic discusses how to implement Step 4 of the procedure, "To extend a primary snap-in property sheet", from the Microsoft Management Console (MMC) topic, Extending the Property Sheet of a Primary Snap-in.
In the previous topic, Filter Display of Property Pages Using the extid Attribute, each Applications snap-in property page used the extid attribute to determine when to display the property page. To display the property page use the IExtendPropertySheet2::CreatePropertyPages method.
To implement CreatePropertyPages, you must include the following steps:
- Define one or more property pages by filling the PROPSHEETPAGE structure for each of the property pages with information about the page. Be aware that the standard size for a property page in an MMC console is 252 dialog units horizontally and 218 dialog units vertically.
- Call the API function CreatePropertySheetPage to create a property sheet page for each PROPSHEETPAGE structure. The function returns a handle to the HPROPSHEETPAGE type that uniquely identifies the page.
- Use the pointer to the IPropertySheetCallback interface passed to the snap-in in the call to the CreatePropertyPages method to call the IPropertySheetCallback::AddPage method to add each property page to the MMC-provided property sheet.
Displaying a property page code example
The following code example, taken from the AppExt.cpp file, shows how to display a property page when the check for the extid property is successful. If the property page retrieves its title from a string resource, in this example, IDS_TAB_GENERAL, and displays an icon to the left of its title, in this example, IDI_ICON_GENERAL, set the optional PSP_USETITLE and PSP_USEICONID.
if ( SUCCEEDED( hr ) )
{
if ( bAddPage )
{
PROPSHEETPAGE psp;
HPROPSHEETPAGE hPage = NULL;
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT | PSP_HASHELP;
// | PSP_USETITLE; // | PSP_USEICONID;
psp.hInstance = g_hinst;
psp.pszTemplate = MAKEINTRESOURCE(IDD_PROPPAGE_LARGE);
psp.pfnDlgProc = DialogProc;
psp.lParam = reinterpret_cast<LPARAM>(this);
psp.pszTitle = NULL; // MAKEINTRESOURCE(IDS_TAB_GENERAL);
psp.pszIcon = NULL; // MAKEINTRESOURCE(IDI_ICON_GENERAL);
hPage = CreatePropertySheetPage(&psp);
_ASSERT(hPage);
hr = lpProvider->AddPage(hPage);
}
}
To create more than one property page using the full code example
- Copy the AppExt.h and AppExt.cpp files and rename them to a different name, for example, AppExt_new.h and AppExt_new.cpp.
- Replace all instances of the class name CPropSheetExtension with a new class name such as CPropSheetExtension2 within the copied files, AppExt_new.h and AppExt_new.cpp.
- Add the new files to the existing code project in order for the new files to be compliled and linked into the DLL during the build operation.