freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高級軟件工程com基礎:接口與實現(xiàn)-資料下載頁

2025-10-07 06:47本頁面
  

【正文】 __stdcall LockServer(BOOL bLock) 。 // Constructor CFactory() : m_cRef(1) {} // Destructor ~CFactory() {} private: long m_cRef 。 } 。 COM基礎 48 HRESULT __stdcall CFactory::QueryInterface(const IIDamp。 iid, void** ppv){ if ((iid == IID_IUnknown) || (iid == IID_IClassFactory)){ *ppv = static_castIClassFactory*(this) 。 } else{ *ppv = NULL 。 return E_NOINTERFACE 。 } reinterpret_castIUnknown*(*ppv)AddRef() 。 return S_OK 。 } ULONG __stdcall CFactory::AddRef(){ return InterlockedIncrement(amp。m_cRef) 。 } ULONG __stdcall CFactory::Release() { if (InterlockedDecrement(amp。m_cRef) == 0){ delete this 。 return 0 。 } return m_cRef 。 } COM基礎 49 // IClassFactory implementation HRESULT __stdcall CFactory::CreateInstance(IUnknown* pUnknownOuter, const IIDamp。 iid, void** ppv) { if (pUnknownOuter != NULL){ return CLASS_E_NOAGGREGATION 。 } CA* pA = new CA 。 if (pA == NULL){ return E_OUTOFMEMORY 。 } HRESULT hr = pAQueryInterface(iid, ppv) 。 // Release the IUnknown pointer. // (If QueryInterface failed, ponent will delete itself.) pARelease() 。 return hr 。 } COM基礎 50 // LockServer HRESULT __stdcall CFactory::LockServer(BOOL bLock) { if (bLock){ InterlockedIncrement(amp。g_cServerLocks) 。 } else{ InterlockedDecrement(amp。g_cServerLocks) 。} return S_OK 。 } STDAPI DllCanUnloadNow() { if ((g_cComponents == 0) amp。amp。 (g_cServerLocks == 0)){ return S_OK 。} else{ return S_FALSE 。} } COM基礎 51 STDAPI DllGetClassObject(const CLSIDamp。 clsid, const IIDamp。 iid, void** ppv){ if (clsid != CLSID_Component1) return CLASS_E_CLASSNOTAVAILABLE 。} CFactory* pFactory = new CFactory 。 if (pFactory == NULL){ return E_OUTOFMEMORY 。} HRESULT hr = pFactoryQueryInterface(iid, ppv) 。 pFactoryRelease() 。 return hr 。 } COM基礎 52 STDAPI DllRegisterServer(){ return RegisterServer(g_hModule, CLSID_Component1, g_szFriendlyName, g_szVerIndProgID, g_szProgID) 。 } STDAPI DllUnregisterServer() { return UnregisterServer(CLSID_Component1, g_szVerIndProgID, g_szProgID) 。 } COM基礎 53 BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) { if (dwReason == DLL_PROCESS_ATTACH) { g_hModule = hModule 。 } return TRUE 。 } COM基礎 54 client COM Lib DLL CFactory CA pIXFx() New CA New CFactory IClassFactory::Release IClassFactory::CreateInstance(IID_IX) CoGetClassObject DllGetClassObject COM基礎
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1