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

📄 usbkeypnpactivexctl.h

📁 手机智能卡开发
💻 H
字号:
#if !defined(AFX_USBKEYPNPACTIVEXCTL_H__1A47F531_962A_4B9D_9052_BE4FEC922144__INCLUDED_)
#define AFX_USBKEYPNPACTIVEXCTL_H__1A47F531_962A_4B9D_9052_BE4FEC922144__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "FrProgressDlg.h"

// USBKeyPnPActiveXCtl.h : Declaration of the CUSBKeyPnPActiveXCtrl ActiveX Control class.
typedef struct _bjcakeycallway
{
	char KeyName[128];
	WORD dwVendorID;//厂家id
	WORD dwProductID;//产品id
	char CSPProvider[128];
	char Dllpri[128];
	int isExist;
}BJCAKEYCALLWAY,*BJCAKEYCALLWAY_PTR;
typedef struct _curcertinfo//当前USBKEY证书信息
{
	BOOL isValide;
	int bjcakeycallway_index;
	CString CSPProvider;
	CString Dllpri;
	CString sConName;//容器名
	CString sSubjectName;
	CString sIssueName;	 
	int keytype;//1,加密 2 签名
}BJCACERTINFO,*BJCACERTINFO_PTR;
#define DEBUGMSG(msg) DebugMsg(__FILE__,__LINE__,msg)

/////////////////////////////////////////////////////////////////////////////
// CUSBKeyPnPActiveXCtrl : See USBKeyPnPActiveXCtl.cpp for implementation.

class CUSBKeyPnPActiveXCtrl : public COleControl
{
	DECLARE_DYNCREATE(CUSBKeyPnPActiveXCtrl)
	
// Constructor
public:
	
	
	
	static void Pthread_ReadCruUSBKeyCert(void *handle);
	void ProgressShowFunc(char *msg,int percent);
	CUSBKeyPnPActiveXCtrl();
	HDEVNOTIFY hDevNotify;
	CString ErrMsg;
	BOOL bIsReged;
	CFrProgressDlg pProgressDlg;
	
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CUSBKeyPnPActiveXCtrl)
	public:
	virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
	virtual void DoPropExchange(CPropExchange* pPX);
	virtual void OnResetState();
	//}}AFX_VIRTUAL

// Implementation
protected:
	~CUSBKeyPnPActiveXCtrl();
	
	DECLARE_OLECREATE_EX(CUSBKeyPnPActiveXCtrl)    // Class factory and guid
	DECLARE_OLETYPELIB(CUSBKeyPnPActiveXCtrl)      // GetTypeInfo
	DECLARE_PROPPAGEIDS(CUSBKeyPnPActiveXCtrl)     // Property page IDs
	DECLARE_OLECTLTYPE(CUSBKeyPnPActiveXCtrl)		// Type name and misc status

// Message maps
	//{{AFX_MSG(CUSBKeyPnPActiveXCtrl)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	//}}AFX_MSG
	afx_msg void OnDeviceChange(WPARAM wParam, LPARAM lParam);
	afx_msg void OnFireOnUSBKeyChange(WPARAM wParam, LPARAM lParam);
	afx_msg void OnProgressMsg(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()

// Dispatch maps
	//{{AFX_DISPATCH(CUSBKeyPnPActiveXCtrl)
	afx_msg BSTR EnumUsbKey();
	afx_msg BSTR getUserInfoByContainer(LPCTSTR strContainerName, short type);
	afx_msg BSTR getUserList();
	afx_msg void RegisterDeviceInterface();
	afx_msg BOOL SetLoginState(LPCTSTR strContainerName, LPCTSTR strUserName);
	afx_msg BSTR GetSavedPass(LPCTSTR UserName);
	afx_msg BSTR GetUSBKeyList();
	afx_msg BOOL GetPassSaveState(LPCTSTR UserName);
	afx_msg BOOL SaveUserPass(LPCTSTR strUserName, LPCTSTR strPass);
	afx_msg BOOL DelUserPass(LPCTSTR strUserName);
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()

	afx_msg void AboutBox();

// Event maps
	//{{AFX_EVENT(CUSBKeyPnPActiveXCtrl)
	void FireOnUSBKeyChange()
		{FireEvent(eventidOnUSBKeyChange,EVENT_PARAM(VTS_NONE));}
	//}}AFX_EVENT
	DECLARE_EVENT_MAP()

// Dispatch and event IDs
public:
	BOOL IsWin98();
	BOOL GetCurUSBKEYCertInfo();
 	BOOL GetAllUSBKEYCertInfo();
	BOOL DoRegisterDeviceInterface(HANDLE hRecipient,GUID InterfaceClassGuid,HDEVNOTIFY *hDevNotify);
	enum {
	//{{AFX_DISP_ID(CUSBKeyPnPActiveXCtrl)
	dispidEnumUsbKey = 1L,
	dispidGetUserInfoByContainer = 2L,
	dispidGetUserList = 3L,
	dispidRegisterDeviceInterface = 4L,
	dispidSetLoginState = 5L,
	dispidGetSavedPass = 6L,
	dispidGetUSBKeyList = 7L,
	dispidGetPassSaveState = 8L,
	dispidSaveUserPass = 9L,
	dispidDelUserPass = 10L,
	eventidOnUSBKeyChange = 1L,
	//}}AFX_DISP_ID
	};
 
private:
	
	PCHAR GetRootHubName(HANDLE HostController);
	PCHAR WideStrToMultiStr(PWCHAR WideStr);
	PCHAR GetDriverKeyName(HANDLE Hub, ULONG ConnectionIndex);
	PCHAR GetExternalHubName (
						  HANDLE  Hub,
						  ULONG   ConnectionIndex
						  )	;
	void EnumerateHub(PCHAR HubName);
	void EnumUsbDevice();
	
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_USBKEYPNPACTIVEXCTL_H__1A47F531_962A_4B9D_9052_BE4FEC922144__INCLUDED)

⌨️ 快捷键说明

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