inprocsrv.cpp

来自「VC++串口通信设。本书详细说明讲解了在VC++环境下编写串口通信得过程。值得一」· C++ 代码 · 共 93 行

CPP
93
字号
// Get needed include files
#include "StdInc.h"
#include "Resource.h"


//
// Main application/server class
//

class CInProcServerApp : public CWinApp
{
public:

   // Public methods inherited from CWinApp
   virtual BOOL InitInstance();
   virtual int ExitInstance();
};

// Our one-and-only application object
CInProcServerApp TheApp;


BOOL CInProcServerApp::InitInstance()
{
   AfxOleLockApp();
   return COleObjectFactory::RegisterAll();
}

int CInProcServerApp::ExitInstance()
{
   AfxOleUnlockApp();
   return 0;
}


//
// Standard exported methods for in-process servers
//

//
// Called when COM needs a new class factory
//

STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
   return AfxDllGetClassObject(rclsid, riid, ppv);
}

//
// Called by COM to check if the server can be unloaded
//

STDAPI DllCanUnloadNow()
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
   return AfxDllCanUnloadNow();
}

//
// Method used to support self-registration
//

STDAPI DllRegisterServer()
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
   COleObjectFactory::UpdateRegistryAll();
   return S_OK;
}

//
// Method used to support self-unregistration
//

STDAPI DllUnregisterServer()
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // Load up various strings from the resource stringtable
   CString strClassID, strProgID;
   strClassID.LoadString(ID_STR_CLASSID);
   strProgID.LoadString(ID_STR_PROGID);

   // Transform the string-format CLSID into a real CLSID
   CLSID CLSID_Component;
   BSTR bstrClassID = strClassID.AllocSysString();
   CLSIDFromString(bstrClassID, &CLSID_Component);
   SysFreeString(bstrClassID);

   // Unregister the class
   return AfxOleUnregisterClass(CLSID_Component, strProgID);
}

⌨️ 快捷键说明

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