static BOOL InitPropSheetPage(PROPSHEETHEADER *ppsh, WORD idDlg, DLGPROC DlgProc, LPFNPSPCALLBACK pfnCallback) { HPROPSHEETPAGE hPage; PROPSHEETPAGE psp; if (ppsh->nPages < MAX_DESK_PAGES) { ZeroMemory(&psp, sizeof(psp)); psp.dwSize = sizeof(psp); psp.dwFlags = PSP_DEFAULT; if (pfnCallback != NULL) psp.dwFlags |= PSP_USECALLBACK; psp.hInstance = hApplet; psp.pszTemplate = MAKEINTRESOURCE(idDlg); psp.pfnDlgProc = DlgProc; psp.pfnCallback = pfnCallback; hPage = CreatePropertySheetPage(&psp); if (hPage != NULL) { return PropSheetAddPage(hPage, (LPARAM)ppsh); } } return FALSE; }
static HMODULE AddNetIdPage(PROPSHEETHEADER *ppsh) { HPROPSHEETPAGE hPage; HMODULE hMod; PCreateNetIDPropertyPage pCreateNetIdPage; hMod = LoadLibrary(TEXT("netid.dll")); if (hMod != NULL) { pCreateNetIdPage = (PCreateNetIDPropertyPage)GetProcAddress(hMod, "CreateNetIDPropertyPage"); if (pCreateNetIdPage != NULL) { hPage = pCreateNetIdPage(); if (hPage == NULL) goto Fail; if (!PropSheetAddPage(hPage, (LPARAM)ppsh)) { DestroyPropertySheetPage(hPage); goto Fail; } } else { Fail: FreeLibrary(hMod); hMod = NULL; } } return hMod; }