mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
5.0 KiB
197 lines
5.0 KiB
//--------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1995
|
|
//
|
|
// File: utilprop.cxx
|
|
//
|
|
// Contents: CUtilProp object definitions
|
|
//
|
|
//
|
|
// History: 08-28-96 shanksh Created.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @module UTILPROP.H | CUtilProp object definitions
|
|
//
|
|
//
|
|
#ifndef _UTILPROP_HXX_
|
|
#define _UTILPROP_HXX_
|
|
|
|
|
|
//----------- structs and #defines -------------------------------------------
|
|
|
|
//
|
|
// simple table used to store property information. Used in
|
|
// the read-only implementation of IDBProperties::GetPropertyInfo and
|
|
//
|
|
typedef struct _tagPROPSTRUCT {
|
|
DBPROPID dwPropertyID;
|
|
DBPROPFLAGS dwFlags;
|
|
VARTYPE vtType;
|
|
BOOL boolVal;
|
|
LONG longVal;
|
|
DBPROPOPTIONS dwOptions;
|
|
PWSTR pwstrVal;
|
|
LPOLESTR pwszDescription;
|
|
DBID colid;
|
|
} PROPSTRUCT;
|
|
|
|
|
|
typedef struct tagPROPSET
|
|
{
|
|
const GUID *guidPropertySet;
|
|
ULONG cProperties;
|
|
PROPSTRUCT* pUPropInfo;
|
|
} PROPSET;
|
|
|
|
//
|
|
// flags for IDBProperties::GetPropertyInfo
|
|
//
|
|
#define F_ROWSETRO (DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ)
|
|
#define F_ROWSETRW (DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | \
|
|
DBPROPFLAGS_WRITE)
|
|
#define F_DSRO (DBPROPFLAGS_DATASOURCEINFO | DBPROPFLAGS_READ)
|
|
#define F_DBINITRW (DBPROPFLAGS_DBINIT | DBPROPFLAGS_READ | \
|
|
DBPROPFLAGS_WRITE)
|
|
|
|
#define F_SESSRO (DBPROPFLAGS_SESSION | DBPROPFLAGS_READ)
|
|
|
|
#define F_ADSIRO (DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ)
|
|
#define F_ADSIRW (DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | \
|
|
DBPROPFLAGS_WRITE)
|
|
|
|
#define OPT_REQ (DBPROPOPTIONS_REQUIRED)
|
|
#define OPT_SIC (DBPROPOPTIONS_OPTIONAL)
|
|
|
|
// flags for Get and Set Properties
|
|
const DWORD PROPSET_DSO = 0x0001;
|
|
const DWORD PROPSET_INIT = 0x0002;
|
|
const DWORD PROPSET_SESSION = 0x0004;
|
|
const DWORD PROPSET_COMMAND = 0x0008;
|
|
|
|
//----------------------------------------------------------------------------
|
|
// CUtilProp | Containing class for all interfaces on the UtilProp
|
|
// Object
|
|
//
|
|
class CUtilProp {
|
|
DWORD _dwDescBufferLen;
|
|
IMalloc *_pIMalloc;
|
|
CCredentials *_pCredentials;
|
|
protected:
|
|
// Member for all of the property work
|
|
PROPSTRUCT * _prgProperties;
|
|
|
|
// Loads fields of DBPROPINFO struct. Helper for GetPropertyInfo
|
|
STDMETHODIMP
|
|
LoadDBPROPINFO(
|
|
PROPSTRUCT* pPropStruct,
|
|
ULONG cProperties,
|
|
DBPROPINFO* pPropInfo
|
|
);
|
|
|
|
// Loads fields of DBPROP struct. Helper for GetProperties
|
|
STDMETHODIMP
|
|
LoadDBPROP(
|
|
PROPSTRUCT* pPropSet,
|
|
ULONG cProperties,
|
|
DBPROP* pPropSupport,
|
|
BOOL IsDBInitPropSet
|
|
);
|
|
|
|
STDMETHODIMP
|
|
CUtilProp::StoreDBPROP (
|
|
PROPSTRUCT* pPropStruct,
|
|
PROPSTRUCT* pStaticPropStruct,
|
|
ULONG cProperties,
|
|
DBPROP* pPropSupport,
|
|
DWORD dwPropIndex
|
|
);
|
|
|
|
HRESULT
|
|
CUtilProp::IsValidValue (
|
|
DBPROP* pDBProp,
|
|
DWORD dwPropIndex
|
|
);
|
|
|
|
BOOL
|
|
CUtilProp::IsADSIFlagSet();
|
|
|
|
HRESULT
|
|
CUtilProp::IsValidInitMode(long lVal);
|
|
|
|
HRESULT
|
|
CUtilProp::IsValidBindFlag(long lVal);
|
|
|
|
BOOL
|
|
CUtilProp::IsSpecialGuid(GUID guidPropSet);
|
|
|
|
public:
|
|
|
|
CUtilProp(void);
|
|
|
|
~CUtilProp(void);
|
|
|
|
|
|
STDMETHODIMP CUtilProp::FInit(
|
|
CCredentials* pCredentials
|
|
);
|
|
|
|
STDMETHODIMP GetProperties(
|
|
ULONG cPropertySets,
|
|
const DBPROPIDSET rgPropertySets[],
|
|
ULONG* pcProperties,
|
|
DBPROPSET** prgProperties,
|
|
DWORD dwBitMask
|
|
);
|
|
|
|
STDMETHODIMP GetPropertyInfo(
|
|
ULONG cPropertySets,
|
|
const DBPROPIDSET rgPropertySets[],
|
|
ULONG* pcPropertyInfoSets,
|
|
DBPROPINFOSET** prgPropertyInfoSets,
|
|
WCHAR** ppDescBuffer,
|
|
BOOL fDSOInitialized
|
|
);
|
|
|
|
STDMETHODIMP CUtilProp::SetProperties(
|
|
ULONG cProperties,
|
|
DBPROPSET rgProperties[],
|
|
DWORD dwBitMask
|
|
);
|
|
|
|
HRESULT
|
|
GetSearchPrefInfo(
|
|
DBPROPID dwPropId,
|
|
PADS_SEARCHPREF_INFO pSearchPrefInfo
|
|
);
|
|
|
|
HRESULT
|
|
CUtilProp::FreeSearchPrefInfo(
|
|
PADS_SEARCHPREF_INFO pSearchPrefInfo,
|
|
DWORD dwNumSearchPrefs
|
|
);
|
|
|
|
PROPSET *
|
|
CUtilProp::GetPropSetFromGuid (
|
|
GUID guidPropSet
|
|
);
|
|
|
|
BOOL
|
|
CUtilProp::IsIntegratedSecurity ();
|
|
|
|
HRESULT
|
|
CUtilProp::GetPropertiesArgChk(
|
|
ULONG cPropertySets,
|
|
const DBPROPIDSET rgPropertySets[],
|
|
ULONG* pcProperties,
|
|
DBPROPSET** prgProperties,
|
|
DWORD dwBitMask
|
|
);
|
|
|
|
};
|
|
|
|
typedef CUtilProp *PCUTILPROP;
|
|
|
|
#define NUMELEM(p) (sizeof(p) / sizeof(p[0]))
|
|
|
|
#endif
|