www.gusucode.com > 一些VC++加密算法+实例源码源码程序 > 一些VC++加密算法+实例源码/优化后的加密注册模块/优化后的加密注册模块/inventory(optimized)/Check.cpp

    #include "stdafx.h"
 
/**********************************************************
*CheckAccess:                                             *
*   check the caller's permission,called by object.Check()*
*para.                                                    *
* service_id            service id.                       *
* user_name             caller identity.                  *
*return                                                   *
*    1 caller has the access.                             *
*    0 caller hasn't the access.                          *
*    -1 errors occurred.                                  *
***********************************************************/
 
int CheckAccess(long service_id, BSTR user_name)
{
 int permission=-1;
 HRESULT hr;
    IEndServer *ptr=NULL;
 
 //Local service
 
 MULTI_QI qi[1];
 memset(qi, 0, sizeof(qi));
 qi[0].pIID = &IID_IEndServer;
 
 hr = CoCreateInstanceEx(
  CLSID_EndServer,
  NULL,
  CLSCTX_LOCAL_SERVER,
  NULL,
  1,
  qi);
 
  if(FAILED(hr)) 
      return -1;
 ptr = (IEndServer*)qi[0].pItf;
 
 hr = ptr->CheckAuthToServer(&permission,
        service_id,
        user_name);
 if(SUCCEEDED(hr))
  ptr->Release();
 return permission;
 
}