spaceshipsvr.cpp

来自「VC++技术内幕」· C++ 代码 · 共 73 行

CPP
73
字号
// spaceshipsvr.cpp : Implementation of DLL Exports.





// Note: Proxy/Stub Information

//      To build a separate proxy/stub DLL, 

//      run nmake -f spaceshipsvrps.mk in the project directory.



#include "stdafx.h"

#include "resource.h"

#include <initguid.h>

#include "spaceshipsvr.h"



#include "spaceshipsvr_i.c"

#include "AtlSpaceShip.h"





CComModule _Module;



BEGIN_OBJECT_MAP(ObjectMap)

OBJECT_ENTRY(CLSID_AtlSpaceShip, CAtlSpaceShip)

END_OBJECT_MAP()



/////////////////////////////////////////////////////////////////////////////

// DLL Entry Point



extern "C"

BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)

{

    if (dwReason == DLL_PROCESS_ATTACH)

    {

        _Module.Init(ObjectMap, hInstance, &LIBID_SPACESHIPSVRLib);

        DisableThreadLibraryCalls(hInstance);

    }

    else if (dwReason == DLL_PROCESS_DETACH)

        _Module.Term();

    return TRUE;    // ok

}



/////////////////////////////////////////////////////////////////////////////

// Used to determine whether the DLL can be unloaded by OLE



STDAPI DllCanUnloadNow(void)

{

    return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;

}



/////////////////////////////////////////////////////////////////////////////

// Returns a class factory to create an object of the requested type



STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)

{

    return _Module.GetClassObject(rclsid, riid, ppv);

}



/////////////////////////////////////////////////////////////////////////////

// DllRegisterServer - Adds entries to the system registry



STDAPI DllRegisterServer(void)

{

    // registers object, typelib and all interfaces in typelib

    return _Module.RegisterServer(TRUE);

}



/////////////////////////////////////////////////////////////////////////////

// DllUnregisterServer - Removes entries from the system registry



STDAPI DllUnregisterServer(void)

{

    return _Module.UnregisterServer(TRUE);

}





⌨️ 快捷键说明

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