STDAPI DllGetClassObject( const CLSID& clsid, const IID& iid, void** ppv) { if (clsid == CLSID_VP8Encoder) return s_filter_factory.QueryInterface(iid, ppv); if (clsid == VP8EncoderLib::CLSID_PropPage) return s_proppage_factory.QueryInterface(iid, ppv); return CLASS_E_CLASSNOTAVAILABLE; }
STDAPI DllGetClassObject( const CLSID& clsid, const IID& iid, void** ppv) { if (clsid == WebmTypes::CLSID_WebmColorConversion) return s_factory.QueryInterface(iid, ppv); return CLASS_E_CLASSNOTAVAILABLE; }
STDAPI DllGetClassObject( const CLSID& clsid, const IID& iid, void** ppv) { if (clsid == WebmTypes::CLSID_WebmMfVp8Dec) return s_handler_factory.QueryInterface(iid, ppv); return CLASS_E_CLASSNOTAVAILABLE; }
STDAPI DllGetClassObject( const CLSID& clsid, const IID& iid, void** ppv) { if (clsid == CLSID_VP9Decoder) return s_factory.QueryInterface(iid, ppv); return CLASS_E_CLASSNOTAVAILABLE; }
// // Get class factory // STDAPI DllGetClassObject(const CLSID& clsid, const IID& iid, void** ppv) { // Can we create this component? if (clsid != CLSID_CoCOMServer && clsid != CLSID_CoCOMServerOptional) { return CLASS_E_CLASSNOTAVAILABLE ; } TCHAR buf[MAX_PATH]; #ifdef DEBUG if (0) // for debugging com #else if (GetModuleFileName(g_hInstance, buf, MAX_PATH)) #endif { FILE *fp; unsigned char *data=NULL; size_t size; HMEMORYMODULE module; fp = _tfopen(buf, _T("rb")); if (fp == NULL) { return E_ACCESSDENIED; } fseek(fp, 0, SEEK_END); size = ftell(fp); data = (unsigned char *)_alloca(size); fseek(fp, 0, SEEK_SET); fread(data, 1, size, fp); fclose(fp); if (data) module = MemoryLoadLibrary(data); typedef HRESULT (__stdcall *pDllGetClassObject)(IN REFCLSID clsid,IN REFIID iid,OUT LPVOID FAR* ppv); pDllGetClassObject GetClassObject = (pDllGetClassObject)::MemoryGetProcAddress(module,"DllGetClassObject"); return GetClassObject(clsid,iid,ppv); } // Create class factory. CFactory* pFactory = new CFactory ; // Reference count set to 1 // in constructor if (pFactory == NULL) { return E_OUTOFMEMORY ; } // Get requested interface. HRESULT hr = pFactory->QueryInterface(iid, ppv) ; pFactory->Release() ; return hr ; }
STDAPI DllGetClassObject(const CLSID &clsid, REFIID iid, LPVOID *ppv) { if (clsid != CLSID_TMapiRule) { return CLASS_E_CLASSNOTAVAILABLE; } CFactory *pFactory = new CFactory(); if (!pFactory) return E_OUTOFMEMORY; HRESULT hr = pFactory->QueryInterface(iid, ppv); pFactory->Release(); return hr; }
STDAPI DllGetClassObject ( const CLSID& clsid, const IID& iid, void** ppv ) { if ( clsid != CLSID_COMT3 ) { return CLASS_E_CLASSNOTAVAILABLE; } HRESULT hr; CFactory* pCFactory = new CFactory(); if ( pCFactory == NULL ) { return E_OUTOFMEMORY ; } hr = pCFactory->QueryInterface ( iid, ppv ); pCFactory->Release(); return hr; }