CAtlServiceModuleT::InitializeSecurity
サービスの既定のセキュリティ設定を提供します。
HRESULT InitializeSecurity( ) throw( );
戻り値
正常に終了した場合は、S_OK を返します。それ以外の場合は、エラーの HRESULT を返します。
解説
Visual Studio .NET 2003 では、このメソッドは基本クラスに実装されません。Visual Studio プロジェクト ウィザードで生成されたコードにはこのメソッドが含まれていますが、以前のバージョンの Visual C++ で作成されたプロジェクトを ATL 7.1 でコンパイルすると、コンパイル エラーが発生します。CAtlServiceModuleT から派生したクラスは、このメソッドを派生クラスで実装する必要があります。
PKT レベルの認証、RPC_C_IMP_LEVEL_IDENTIFY の偽装レベル、および null 以外の適切なセキュリティ記述子を CoInitializeSecurity の呼び出しで使用します。
ウィザードで生成された属性なしサービス プロジェクトの場合は、次のようになります。
class CNonAttribServiceModule : public CAtlServiceModuleT< CNonAttribServiceModule, IDS_SERVICENAME >
{
public :
DECLARE_LIBID(LIBID_NonAttribServiceLib)
DECLARE_REGISTRY_APPID_RESOURCEID(IDR_NONATTRIBSERVICE, "{29160736-339F-4A1C-ABEF-C320CE103E12}")
HRESULT InitializeSecurity() throw()
{
// TODO : Call CoInitializeSecurity and provide the appropriate security settings for
// your service
// Suggested - PKT Level Authentication,
// Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY
// and an appropiate Non NULL Security Descriptor.
return S_OK;
}
};
属性付きサービス プロジェクトの場合は、次のようになります。
[ module(SERVICE, uuid = "{D3103322-7B70-4581-8E59-12769BD9A62B}",
name = "AttribService",
helpstring = "AttribService 1.0 Type Library",
resource_name="IDS_SERVICENAME") ]
class CAttribServiceModule
{
public:
HRESULT InitializeSecurity() throw()
{
// TODO : Call CoInitializeSecurity and provide the appropriate security settings for
// your service
// Suggested - PKT Level Authentication,
// Impersonation Level of RPC_C_IMP_LEVEL_IDENTIFY
// and an appropiate Non NULL Security Descriptor.
return S_OK;
}
};
必要条件
ヘッダー: atlbase.h