STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { #ifndef NO_EXPIRATION_DATE // check if we are outdated // delete this for an official release SYSTEMTIME SystemTime; GetSystemTime(&SystemTime); if ((SystemTime.wYear * 500 + SystemTime.wMonth * 35 + SystemTime.wDay) > (EXP_YEAR * 500 + EXP_MONTH * 35 + EXP_DAY)) { char szTitle[256]; LoadString(_Module.m_hInst, IDS_EXPIREDTITLE, szTitle, sizeof szTitle); char szText[256]; LoadString(_Module.m_hInst, IDS_EXPIRED, szText, sizeof szText); MessageBox(0, szText, szTitle, MB_ICONINFORMATION|MB_OK); return CLASS_E_CLASSNOTAVAILABLE; } #endif /* if ( !IsSingleThreadedApartment() ) { MessageBox(0, "Wrong threading model, please reinstall VPinMAME!", "Unable to run", MB_ICONINFORMATION|MB_OK); return CLASS_E_CLASSNOTAVAILABLE; } */ #ifdef _MERGE_PROXYSTUB if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK) return S_OK; #endif return _Module.GetClassObject(rclsid, riid, ppv); }
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { #ifdef _MERGE_PROXYSTUB if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK) return S_OK; #endif return _Module.GetClassObject(rclsid, riid, ppv); }
// Returns a class factory to create an object of the requested type. STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ LPVOID* ppv) { #ifdef _MERGE_PROXYSTUB if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK) return S_OK; #endif return _AtlModule.DllGetClassObject(rclsid, riid, ppv); }
/*---------------------------------------------------------------------------------------------- Retrieves the class factory for the given class ID. This function is required by COM and must be exported from the DLL. ----------------------------------------------------------------------------------------------*/ STDAPI DLLEXPORT__ DllGetClassObject(REFCLSID clsid, REFIID iid, VOID ** ppv) { ENTER_DLL(); #ifdef _MERGE_PROXYSTUB if (PrxDllGetClassObject(clsid, iid, ppv) == S_OK) return S_OK; #endif ModuleEntry::ModuleAddRef(); HRESULT hr = ModuleEntry::ModuleGetClassObject(clsid, iid, ppv); ModuleEntry::ModuleRelease(); return hr; }
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { // Initialize the application, if needed g_papp->Initialize(ZString()); #ifdef _MERGE_PROXYSTUB if (S_OK == PrxDllGetClassObject(rclsid, riid, ppv)) return S_OK; #endif return _Module.GetClassObject(rclsid, riid, ppv); }
// 返回一个类工厂以创建所请求类型的对象。 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK) return S_OK; return _AtlModule.DllGetClassObject(rclsid, riid, ppv); }