CPRPOBJ.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

CPrpObj.h

Abstract:

Sample Provider GetObject functionality

Author:

Environment:

User mode

Revision History :

--*/
#ifndef _CPRPOBJ_H_
#define _CPRPOBJ_H_

struct SYNTAXMAP
{
BSTR bstrName;
BSTR bstrSampleDSName;
long lOleAutoDataType;
};

struct SYNTAXINFO
{
BSTR bstrName;
long lOleAutoDataType;
};

class CSampleDSProperty : INHERIT_TRACKING,
public CCoreADsObject,
public IADsProperty
{
public:

/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING

/* Other methods */
DECLARE_IDispatch_METHODS

DECLARE_IADs_METHODS

DECLARE_IADsProperty_METHODS

/* Constructors, Destructors, ... */
CSampleDSProperty::CSampleDSProperty();

CSampleDSProperty::~CSampleDSProperty();

static
HRESULT
CSampleDSProperty::CreateProperty(
BSTR bstrParent,
BSTR bstrName,
LPSampleDS_ATTR_DEF lpAttrDef,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);

static
HRESULT
CSampleDSProperty::CreateProperty(
BSTR bstrParent,
BSTR bstrName,
HANDLE hTree,
DWORD dwObjectState,
REFIID riid,
void **ppvObj
);

static
HRESULT
CSampleDSProperty::AllocatePropertyObject(
CSampleDSProperty **ppProperty
);

protected:

CDispatchMgr FAR * _pDispMgr;

/* Properties */
VARIANT _vADsNames;
VARIANT _vDsNames;
BSTR _bstrSyntax;
};

HRESULT
MapSyntaxIdtoADsSyntax(
DWORD dwSyntaxId,
LPWSTR pszADsSyntax
);

HRESULT
MapSyntaxIdtoSampleDSSyntax(
DWORD dwSyntaxId,
LPWSTR pszSampleDSSyntax
);
#endif