除了通常的IUnknown成员函数之外,属性表处理程序使用AddPages成员函数。即将显示属性表时,系统调用AddPages成员函数。系统调用注册到文件类型的每个属性表处理程序,以允许处理程序向页面添加页面。以下示例显示如何实现AddPages成员函数。
STDMETHODIMP CSamplePageExt :: addPages(LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam)
{
PROPSHEETPAGE psp;
HPROPSHEETPAGE hpage;
psp.dwSize = sizeof(psp); //没有额外的数据
psp.dwFlags = PSP_USEREFPARENT | PSP_USERELEASEFUNC;
psp.hInstance = (HINSTANCE)g_hmodThisDll;
psp.pszTemplate = MAKEINTRESOURCE(DLG_FSPAGE);
psp.pfnDlgProc = FSPage_DlgProc;
psp.pcRefParent = &g_cRefThisDll;
psp.pfnRelease = FSPage_ReleasePage;
psp.lParam = (LPARAM)hdrop;
hpage = CreatePropertySheetPage(&psp);
if(hpage){
if(!lpfnAddPage(hpage,lParam))
DestroyPropertySheetPage(hpage);
}
return NOERROR;
}