COMMON.H

/*++ 

Copyright (c) 1996 Microsoft Corporation

Module Name:

Common.h

Abstract:

Contains Sample Provider routines and properties that are common to
all objects. Objects get the routines and properties through C++
inheritance.

Author:

Environment:

User mode

Revision History :

--*/
#ifndef _COMMON_H_
#define _COMMON_H_

#define MAX_DWORD 0xFFFFFFFF
#define SCHEMA_NAME L"Schema" //Name of Schema object off of RootObject

HRESULT xx_put_BSTR(
BSTR* lppItemName,
BSTR lpName
);

HRESULT xx_put_LONG(
long *plnItem,
long Item
);

HRESULT
xx_put_DATE(
DATE * pdaItem,
DATE daItem
);

HRESULT
xx_put_VARIANT_BOOL(
VARIANT_BOOL * pfItem,
VARIANT_BOOL fItem
);

HRESULT
xx_put_VARIANT(
VARIANT * * pvItem,
VARIANT vItem
);

HRESULT
LoadTypeInfoEntry(
CDispatchMgr * pDispMgr,
REFIID libid,
REFIID iid,
void * pIntf,
DISPID SpecialId
);


HRESULT
MakeUncName(
LPWSTR szSrcBuffer,
LPWSTR szTargBuffer
);

HRESULT
ValidateOutParameter(
BSTR * retval
);

HRESULT
BuildADsPath(
BSTR Parent,
BSTR Name,
BSTR *pADsPath
);

HRESULT
BuildSchemaPath(
BSTR bstrADsPath,
BSTR bstrClass,
BSTR *pSchemaPath
);

HRESULT
BuildADsGuid(
REFCLSID clsid,
BSTR *pADsClass
);


//
// Accessing Well-known object types
//
//RHA will have to do filters as whatever user passes in
typedef struct _filters {
WCHAR szObjectName[MAX_PATH];
DWORD dwFilterId;
} FILTERS, *PFILTERS;


extern PFILTERS gpFilters;
extern DWORD gdwMaxFilters;


HRESULT
BuildADsPathFromDSPath(
LPWSTR szDSRootRDN,
LPWSTR szDSDNName,
LPWSTR szADsPathName
);

HRESULT
BuildDSPathFromADsPath(
LPWSTR szADsPathName,
LPWSTR szDSPathName
);

HRESULT
BuildDSParentPathFromDSPath(
LPWSTR szDSPathName,
LPWSTR szDSParentPathName,
LPWSTR szCommonName
);

HRESULT
BuildDSPathFromDSParentPath(
LPWSTR szDSParentPathName,
LPWSTR szDSObjectCommonName,
LPWSTR szDSPathName
);


typedef struct _KEYDATA {
DWORD cTokens;
LPWSTR pTokens[1];
} KEYDATA, *PKEYDATA;


PKEYDATA
CreateTokenList(
LPWSTR pKeyData,
WCHAR ch
);

HRESULT LoadTypeInfo(CLSID clsidTL, CLSID clsidTI, LPTYPEINFO *ppTI);

#endif