CORE.CPP
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /*++
- Copyright (c) 1996 Microsoft Corporation
- Module Name:
- Core.cpp
- Abstract:
- CCoreADsObject - Implementation
- Author:
- Environment:
- User mode
- Revision History :
- --*/
- #include "adssmp.h"
- #pragma hdrstop
- HRESULT
- CCoreADsObject::InitializeCoreObject(
- BSTR Parent,
- BSTR Name,
- BSTR ClassName,
- BSTR Schema,
- REFCLSID rclsid,
- DWORD dwObjectState
- )
- {
- HRESULT hr = S_OK;
- ADsAssert(Parent);
- ADsAssert(Name);
- ADsAssert(ClassName);
- hr = BuildADsPath(
- Parent,
- Name,
- &_ADsPath
- );
- BAIL_ON_FAILURE(hr);
- hr = BuildADsGuid(
- rclsid,
- &_ADsGuid
- );
- BAIL_ON_FAILURE(hr);
- hr = xx_put_BSTR(&_Parent, Parent);
- BAIL_ON_FAILURE(hr);
- hr = xx_put_BSTR(&_Name, Name);
- BAIL_ON_FAILURE(hr);
- hr = xx_put_BSTR(&_ADsClass, ClassName);
- BAIL_ON_FAILURE(hr);
- hr = BuildSchemaPath(
- _ADsPath,
- ClassName,
- &_Schema
- );
- BAIL_ON_FAILURE(hr);
- _dwObjectState = dwObjectState;
- error:
- RRETURN(hr);
- }
- CCoreADsObject::CCoreADsObject():
- _Name(NULL),
- _ADsPath(NULL),
- _Parent(NULL),
- _ADsClass(NULL),
- _Schema(NULL),
- _ADsGuid(NULL),
- _dwObjectState(0)
- {
- }
- CCoreADsObject::~CCoreADsObject()
- {
- if (_Name) {
- ProvFreeString(_Name);
- }
- if (_ADsPath) {
- ProvFreeString(_ADsPath);
- }
- if (_Parent) {
- ProvFreeString(_Parent);
- }
- if (_ADsClass) {
- ProvFreeString(_ADsClass);
- }
- if (_Schema) {
- ProvFreeString(_Schema);
- }
- if (_ADsGuid) {
- ProvFreeString(_ADsGuid);
- }
- }
- HRESULT
- CCoreADsObject::get_CoreName(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- RRETURN(ProvAllocString(_Name, retval));
- }
- HRESULT
- CCoreADsObject::get_CoreADsPath(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- RRETURN(ProvAllocString(_ADsPath, retval));
- }
- HRESULT
- CCoreADsObject::get_CoreADsClass(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- RRETURN(ProvAllocString(_ADsClass, retval));
- }
- HRESULT
- CCoreADsObject::get_CoreParent(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- RRETURN(ProvAllocString(_Parent, retval));
- }
- HRESULT
- CCoreADsObject::get_CoreSchema(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- if ( _Schema == NULL || *_Schema == 0 )
- RRETURN(E_ADS_PROPERTY_NOT_SUPPORTED);
- RRETURN(ProvAllocString(_Schema, retval));
- }
- HRESULT
- CCoreADsObject::get_CoreGUID(BSTR * retval)
- {
- HRESULT hr;
- if (FAILED(hr = ValidateOutParameter(retval))){
- RRETURN(hr);
- }
- RRETURN(ProvAllocString(_ADsGuid, retval));
- }
- STDMETHODIMP
- CCoreADsObject::GetInfo(
- BOOL fExplicit
- )
- {
- RRETURN(E_NOTIMPL);
- }