⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creditserverop.cpp

📁 Visual_C++[1].NET_Bible1 Visual_C++宝典书中的全部源码
💻 CPP
字号:
// CreditServerOP.cpp
#include <windows.h>
#include <tchar.h>
#include "CreditServer_h.h"
#include "CreditObject.h"
#include "CreditObjectFactory.h"
#include "registry.h"

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

LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
{
	while (p1 != NULL && *p1 != NULL)
	{
		LPCTSTR p = p2;
		while (p != NULL && *p != NULL)
		{
			if (*p1 == *p)
				return CharNext(p1);
			p = CharNext(p);
		}
		p1 = CharNext(p1);
	}
	return NULL;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
	LPSTR lpCmdLine, int nCmdShow)
{
	MSG msg;
	HRESULT hr;
	DWORD dw;
	CCreditObjectFactory f;

	// have we been invoked just to update the registry?
	TCHAR szTokens[] = _T("-/");
	BOOL bRun = TRUE;
	LPCTSTR lpszToken = FindOneOf(lpCmdLine, szTokens);

	while (lpszToken != NULL)
	{
		if (lstrcmpi(lpszToken, _T("UnregServer"))==0)
		{
			UnRegisterTypeLib(LIBID_CreditLibrary, 1,0, 0x00, SYS_WIN32);
			UnregisterServer(CLSID_CreditVerification, 
				g_szVerIndProgID, g_szProgID);
			bRun = FALSE;
			break;
		}
		if (lstrcmpi(lpszToken, _T("RegServer"))==0)
		{
			RegisterTypeLibrary (hInstance, LIBID_CreditLibrary, 
				1,0, 0x00, "CreditServer.tlb");
			RegisterServer(hInstance, CLSID_CreditVerification, 
				g_szNiceName, g_szVerIndProgID, g_szProgID);
			bRun = FALSE;
			break;
		}
		lpszToken = FindOneOf(lpszToken, szTokens);
	}

	if (bRun)
	{
		CoInitialize(NULL);

		hr = CoRegisterClassObject(CLSID_CreditVerification, &f,
			CLSCTX_SERVER, REGCLS_MULTIPLEUSE, &dw);
		if (FAILED(hr))
			exit(hr);

		while (GetMessage(&msg,NULL,0,0))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}

		CoRevokeClassObject(dw);
		CoUninitialize();
	}

	return 0;
}

⌨️ 快捷键说明

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