creditserver.cpp

来自「Visual_C++[1].NET_Bible1 Visual_C++宝典书中」· C++ 代码 · 共 64 行

CPP
64
字号
// CreditServer.cpp 
#include "stdafx.h"
#include "CreditServer_h.h"
#include "CreditObject.h"
#include "CreditObjectFactory.h"

extern long g_cComponents;
HMODULE g_hModule = NULL;

extern const GUID IID_ICreditVerification;
extern const CLSID CLSID_CreditVerification;

STDAPI DllCanUnloadNow() 
{
	if (g_cComponents == 0)
		return S_OK;
	else
		return S_FALSE;
}
 
STDAPI DllGetClassObject(const CLSID& clsid, 
	const IID& riid, void** ppv) 
{
	if (clsid != CLSID_CreditVerification)
		return CLASS_E_CLASSNOTAVAILABLE;

	CCreditObjectFactory* pFactory = new CCreditObjectFactory;
	if (pFactory == NULL)
		return E_OUTOFMEMORY;

	HRESULT hr = pFactory->QueryInterface(riid, ppv);
	pFactory->Release();
	return hr;
}
 
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, 
	void* lpReserved) 
{
	if (dwReason == DLL_PROCESS_ATTACH)
		g_hModule = hModule;
	return TRUE;
}

const char g_szNiceName[] = "Simplest Credit Verification Object";
const char g_szVerIndProgID[] = "CreditServer.CreditObject";
const char g_szProgID[] = "CreditServer.CreditObject.1";

#include "registry.h"

STDAPI DllRegisterServer() 
{
	RegisterTypeLibrary (g_hModule, LIBID_CreditLibrary, 
		1,0, 0x00, "CreditServer.tlb");
	return RegisterServer(g_hModule, CLSID_CreditVerification, 
		g_szNiceName, g_szVerIndProgID, g_szProgID);
}

STDAPI DllUnregisterServer() 
{
	UnRegisterTypeLib(LIBID_CreditLibrary, 1,0, 0x00, SYS_WIN32);
	return UnregisterServer(CLSID_CreditVerification, 
		g_szVerIndProgID, g_szProgID);
}

⌨️ 快捷键说明

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