home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / ADSDK.ZIP / Samples / Provider / core.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-13  |  3.4 KB  |  224 lines

  1. /*++
  2.  
  3. Copyright (c) 1996 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     Core.cpp
  8.  
  9. Abstract:
  10.  
  11.     CCoreADsObject - Implementation
  12.  
  13. Author:
  14.  
  15. Environment:
  16.  
  17.     User mode
  18.  
  19. Revision History :
  20.  
  21. --*/
  22. #include "adssmp.h"
  23. #pragma hdrstop
  24.  
  25. HRESULT
  26. CCoreADsObject::InitializeCoreObject(
  27.         BSTR Parent,
  28.         BSTR Name,
  29.         BSTR ClassName,
  30.         BSTR Schema,
  31.         REFCLSID rclsid,
  32.         DWORD dwObjectState
  33.         )
  34. {
  35.     HRESULT hr = S_OK;
  36.     ADsAssert(Parent);
  37.     ADsAssert(Name);
  38.     ADsAssert(ClassName);
  39.  
  40.     hr = BuildADsPath(
  41.             Parent,
  42.             Name,
  43.             &_ADsPath
  44.             );
  45.     BAIL_ON_FAILURE(hr);
  46.  
  47.     hr = BuildADsGuid(
  48.             rclsid,
  49.             &_ADsGuid
  50.             );
  51.     BAIL_ON_FAILURE(hr);
  52.  
  53.     hr = xx_put_BSTR(&_Parent, Parent);
  54.     BAIL_ON_FAILURE(hr);
  55.  
  56.  
  57.     hr = xx_put_BSTR(&_Name, Name);
  58.     BAIL_ON_FAILURE(hr);
  59.  
  60.     hr = xx_put_BSTR(&_ADsClass, ClassName);
  61.     BAIL_ON_FAILURE(hr);
  62.  
  63.     hr = BuildSchemaPath(
  64.             _ADsPath,
  65.             ClassName,
  66.             &_Schema
  67.             );
  68.     BAIL_ON_FAILURE(hr);
  69.     
  70.     _dwObjectState = dwObjectState;
  71.  
  72. error:
  73.     RRETURN(hr);
  74.  
  75. }
  76.  
  77. CCoreADsObject::CCoreADsObject():
  78.                         _Name(NULL),
  79.                         _ADsPath(NULL),
  80.                         _Parent(NULL),
  81.                         _ADsClass(NULL),
  82.                         _Schema(NULL),
  83.                         _ADsGuid(NULL),
  84.                         _dwObjectState(0)
  85. {
  86. }
  87.  
  88. CCoreADsObject::~CCoreADsObject()
  89. {
  90.     if (_Name) {
  91.         ProvFreeString(_Name);
  92.     }
  93.  
  94.     if (_ADsPath) {
  95.         ProvFreeString(_ADsPath);
  96.     }
  97.  
  98.     if (_Parent) {
  99.         ProvFreeString(_Parent);
  100.     }
  101.  
  102.     if (_ADsClass) {
  103.         ProvFreeString(_ADsClass);
  104.     }
  105.  
  106.     if (_Schema) {
  107.         ProvFreeString(_Schema);
  108.     }
  109.  
  110.     if (_ADsGuid) {
  111.         ProvFreeString(_ADsGuid);
  112.     }
  113.  
  114. }
  115.  
  116. HRESULT
  117. CCoreADsObject::get_CoreName(BSTR * retval)
  118. {
  119.     HRESULT hr;
  120.  
  121.     if (FAILED(hr = ValidateOutParameter(retval))){
  122.         RRETURN(hr);
  123.     }
  124.  
  125.     RRETURN(ProvAllocString(_Name, retval));
  126. }
  127.  
  128.  
  129. HRESULT
  130. CCoreADsObject::get_CoreADsPath(BSTR * retval)
  131. {
  132.     HRESULT hr;
  133.  
  134.     if (FAILED(hr = ValidateOutParameter(retval))){
  135.         RRETURN(hr);
  136.     }
  137.  
  138.     RRETURN(ProvAllocString(_ADsPath, retval));
  139.  
  140. }
  141.  
  142. HRESULT
  143. CCoreADsObject::get_CoreADsClass(BSTR * retval)
  144. {
  145.     HRESULT hr;
  146.  
  147.     if (FAILED(hr = ValidateOutParameter(retval))){
  148.         RRETURN(hr);
  149.     }
  150.  
  151.     RRETURN(ProvAllocString(_ADsClass, retval));
  152. }
  153.  
  154. HRESULT
  155. CCoreADsObject::get_CoreParent(BSTR * retval)
  156. {
  157.  
  158.     HRESULT hr;
  159.  
  160.     if (FAILED(hr = ValidateOutParameter(retval))){
  161.         RRETURN(hr);
  162.     }
  163.  
  164.     RRETURN(ProvAllocString(_Parent, retval));
  165. }
  166.  
  167. HRESULT
  168. CCoreADsObject::get_CoreSchema(BSTR * retval)
  169. {
  170.  
  171.     HRESULT hr;
  172.  
  173.     if (FAILED(hr = ValidateOutParameter(retval))){
  174.         RRETURN(hr);
  175.     }
  176.  
  177.     if ( _Schema == NULL || *_Schema == 0 )
  178.         RRETURN(E_ADS_PROPERTY_NOT_SUPPORTED);
  179.  
  180.     RRETURN(ProvAllocString(_Schema, retval));
  181. }
  182.  
  183. HRESULT
  184. CCoreADsObject::get_CoreGUID(BSTR * retval)
  185. {
  186.     HRESULT hr;
  187.  
  188.     if (FAILED(hr = ValidateOutParameter(retval))){
  189.         RRETURN(hr);
  190.     }
  191.  
  192.     RRETURN(ProvAllocString(_ADsGuid, retval));
  193. }
  194.  
  195. STDMETHODIMP
  196. CCoreADsObject::GetInfo(
  197.     BOOL fExplicit
  198.     )
  199. {
  200.     RRETURN(E_NOTIMPL);
  201. }
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.