www.gusucode.com > 一些VC++加密算法+实例源码源码程序 > 一些VC++加密算法+实例源码/优化后的加密注册模块/优化后的加密注册模块/inventory(syn_thread)/ArkoSetSecurity.cpp
/* SetSec.cpp xschen, 31, july. */ // Download by http://www.codefans.net #include "stdafx.h" #include "am_lv1.h" #include "ErrorReport.h" #include "EndAuthServer.h" ///////////////////////////////////////////////////////////////////////////// long QueryEndStatus() //the return value is zero when failed, ID when succeeded { long lg; LPCTSTR lpSubKey = ArkoAuthReg; HKEY hk; LPTSTR lpValueName = ArkoAuthValueName; DWORD type; long status; DWORD cbData; lg = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, NULL, KEY_READ, &hk); if(lg) return 0; lg = RegQueryValueEx(hk, lpValueName, NULL, &type, (LPBYTE)&status, &cbData); if(lg) return 0; return status; } HRESULT SetEndSecurity( long serviceID) { if(QueryEndStatus()==0){ return S_OK; } HRESULT hr; IEndServer *pEndCheck=NULL; /********************************************************/ wchar_t end_server[16]; char * ipaddr = new char [IP_LEN]; unsigned int ipsize = IP_LEN; c_GetIpAddr(ipaddr,&ipsize); mbstowcs(end_server, ipaddr, 16); free ( ipaddr ) ; COSERVERINFO cs; memset(&cs, 0, sizeof(cs)); cs.pwszName = end_server; MULTI_QI qi[1]; memset(qi, 0, sizeof(qi)); qi[0].pIID = &IID_IEndServer; hr = CoCreateInstanceEx( CLSID_EndServer, NULL, CLSCTX_SERVER, &cs, 1, qi); if(FAILED(hr)) { // CallEventServer(7501, "Dcom failed to connect to end system !", 15, ""); return hr; } pEndCheck = (IEndServer*)qi[0].pItf; /********************************************************/ hr = pEndCheck->ArkoSetSecurity(serviceID); if ( hr > 0 ) pEndCheck->Release () ; return hr; }