Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// File: pfnsetupapi.cpp
#include "precomp.h"
#include "pfnsetupapi.h"
PFN_SET_INSTALL SETUPAPI::SetupInstallFromInfSection = NULL; PFN_SET_OPFILE SETUPAPI::SetupOpenInfFile = NULL; PFN_SET_CLFILE SETUPAPI::SetupCloseInfFile = NULL; HINSTANCE SETUPAPI::m_hInstance = NULL;
#define SETUPAPI_APIFCN_ENTRYA(pfn) {(PVOID *) &SETUPAPI::##pfn, #pfn ## "A"}
#define SETUPAPI_APIFCN_ENTRYW(pfn) {(PVOID *) &SETUPAPI::##pfn, #pfn ## "A"}
#define SETUPAPI_APIFCN_ENTRYNONE(pfn) {(PVOID *) &SETUPAPI::##pfn, #pfn }
#ifdef UNICODE
#define SETUPAPI_APIFCN_ENTRY SETUPAPI_APIFCN_ENTRYW
#else
#define SETUPAPI_APIFCN_ENTRY SETUPAPI_APIFCN_ENTRYA
#endif
APIFCN s_apiFcnSETUPAPI[] = { SETUPAPI_APIFCN_ENTRY(SetupInstallFromInfSection), SETUPAPI_APIFCN_ENTRY(SetupOpenInfFile), SETUPAPI_APIFCN_ENTRYNONE(SetupCloseInfFile) };
HRESULT SETUPAPI::Init(void) { if (NULL != SETUPAPI::m_hInstance) return S_OK;
return HrInitLpfn(s_apiFcnSETUPAPI, ARRAY_ELEMENTS(s_apiFcnSETUPAPI), &SETUPAPI::m_hInstance, TEXT("SETUPAPI.DLL")); }
void SETUPAPI::DeInit(void) { // TODO - why does the main thread die when I unload this?
if( NULL != SETUPAPI::m_hInstance ) FreeLibrary( SETUPAPI::m_hInstance ); }
|