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

📄 usbkeypnpactivex.cpp

📁 手机智能卡开发
💻 CPP
字号:
// USBKeyPnPActiveX.cpp : Implementation of CUSBKeyPnPActiveXApp and DLL registration.

#include "stdafx.h"
#include "USBKeyPnPActiveX.h"
#include <comcat.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


CUSBKeyPnPActiveXApp NEAR theApp;

const GUID CDECL BASED_CODE _tlid =
		{ 0x6d9d01a3, 0x184e, 0x4215, { 0xa9, 0x42, 0x92, 0x6a, 0xd5, 0xb0, 0xc6, 0x2f } };
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;
 
//给控件设置安全ID
//Add begin 给控件设置安全ID
//下面的这个ID号是根据Class information for BjcaKeyCtrl
//	[ uuid(0CF5259B-A812-4B6E-9746-ACF7279FEF74))修改的。
const IID BASED_CODE BJCAPNPKEYID = 
{0x0CF5259B, 0xA812, 0x4B6E, 0x97, 0x46, 0xAC, 0xF7, 0x27, 0x9F, 0xEF, 0x74};

const CATID CATID_SafeForScripting     =
{0x7dd95801,0x9882,0x11cf,{0x9f,0xa9,0x00,0xaa,0x00,0x6c,0x42,0xc4}};
const CATID CATID_SafeForInitializing  =
{0x7dd95802,0x9882,0x11cf,{0x9f,0xa9,0x00,0xaa,0x00,0x6c,0x42,0xc4}};

HRESULT CreateComponentCategory(CATID catid, WCHAR * catDescription)
{
	ICatRegister * pcr = NULL;
	HRESULT hr = S_OK;
	hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL,
		CLSCTX_INPROC_SERVER, IID_ICatRegister, (void **)&pcr);
	if(FAILED(hr))
		return hr;
	CATEGORYINFO catinfo;
	catinfo.catid = catid;
	catinfo.lcid = 0x0409;
	int len = wcslen(catDescription);
	if(len > 127)
		len = 127;
	wcsncpy(catinfo.szDescription,catDescription,len);
	catinfo.szDescription[len] = '\0';
	hr = pcr->RegisterCategories(1, &catinfo);
	pcr->Release();
	
	return hr;
}

//注册组件
HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid)
{
	ICatRegister * pcr = NULL;
	HRESULT hr = S_OK;
	hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL,
		CLSCTX_INPROC_SERVER, IID_ICatRegister, (void **)&pcr);
	if(SUCCEEDED(hr))
	{
		CATID rgcatid[1];
		rgcatid[0] = catid;
		hr = pcr->RegisterClassImplCategories(clsid,1,rgcatid);
	}
	if(pcr != NULL)
		pcr->Release();
	
	return hr;
}
 

////////////////////////////////////////////////////////////////////////////
// CUSBKeyPnPActiveXApp::InitInstance - DLL initialization

BOOL CUSBKeyPnPActiveXApp::InitInstance()
{
	BOOL bInit = COleControlModule::InitInstance();

	if (bInit)
	{
		// TODO: Add your own module initialization code here.
	}

	return bInit;
}


////////////////////////////////////////////////////////////////////////////
// CUSBKeyPnPActiveXApp::ExitInstance - DLL termination

int CUSBKeyPnPActiveXApp::ExitInstance()
{
	// TODO: Add your own module termination code here.

	return COleControlModule::ExitInstance();
}


/////////////////////////////////////////////////////////////////////////////
// DllRegisterServer - Adds entries to the system registry

STDAPI DllRegisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
		return ResultFromScode(SELFREG_E_CLASS);
	HRESULT hr;
	
	//创建安全初始化组件
	hr = CreateComponentCategory(CATID_SafeForInitializing,
		L"BJCAKEYCTRL safty for Initializing!");
	if(FAILED(hr))
		return hr;
	
	//注册安全初始化组件BJCAKEYID
	hr = RegisterCLSIDInCategory(BJCAPNPKEYID, CATID_SafeForInitializing);
	if(FAILED(hr))
		return hr;
	
    //创建安全脚本组件
	hr = CreateComponentCategory(CATID_SafeForScripting,
		L"BJCAKEYCTRL safty for Scripting!");
	if(FAILED(hr))
		return hr;
	
	//注册安全脚本组件
	hr = RegisterCLSIDInCategory(BJCAPNPKEYID, CATID_SafeForScripting);
	if(FAILED(hr))
		return hr;
	return NOERROR;
}


/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - Removes entries from the system registry

STDAPI DllUnregisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
		return ResultFromScode(SELFREG_E_CLASS);
	
	
	
	return NOERROR;
}

⌨️ 快捷键说明

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