compobj.cpp

来自「Programming Windows 程序开发设计指南」· C++ 代码 · 共 47 行

CPP
47
字号
/*----------------------------------------------
   COMPOBJ.CPP -- Component Object registration
                  (c) Paul Yao, 1996
  ----------------------------------------------*/
#include <windows.h>
#include "pubmem.h"

int cObject    = 0 ;
int cLockCount = 0 ;

//-------------------------------------------------------------------
HRESULT APIENTRY 
DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppvObj)
     {
     // Initialize "out" pointer to known value
	 *ppvObj = NULL ;

     if (rclsid != CLSID_ALLOCATOR)
          {
          return CLASS_E_CLASSNOTAVAILABLE ;
          }

	 DClassFactory *pClassFactory = new DClassFactory () ;
	 if (pClassFactory == NULL)
          {
          return E_OUTOFMEMORY ;
          }
     else
          {
          return pClassFactory->QueryInterface (riid, ppvObj) ;
	      }
     }

//-------------------------------------------------------------------
HRESULT APIENTRY 
DllCanUnloadNow (void)
     {
     if (cObject > 0 || cLockCount > 0)
          {
          return S_FALSE ;
          }
     else
          {
          return S_OK ;
          }
     }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?