|
|
//========================================================================
// Copyright (C) 1997 Microsoft Corporation
// Author: RameshV
// Description: This file has been generated. Pl look at the .c file
//========================================================================
typedef struct _STORE_HANDLE { // this is what is used almost always
DWORD MustBeZero; // for future use
LPWSTR Location; // where does this refer to?
LPWSTR UserName; // who is the user?
LPWSTR Password; // what is the password?
DWORD AuthFlags; // what permission was this opened with?
HANDLE ADSIHandle; // handle to within ADSI
ADS_SEARCH_HANDLE SearchHandle; // any searches going on?
LPVOID Memory; // memory allocated for this call..
DWORD MemSize; // how much was really allocated?
BOOL SearchStarted; // Did we start the search?
} STORE_HANDLE, *LPSTORE_HANDLE, *PSTORE_HANDLE;
DWORD StoreInitHandle( // initialize a handle
IN OUT STORE_HANDLE *hStore, // will be filled in with stuff..
IN DWORD Reserved, // must be zero -- for future use
IN LPWSTR Domain, // OPTIONAL NULL==>default Domain
IN LPWSTR UserName, // OPTIONAL NULL==>default credentials
IN LPWSTR Password, // OPTIONAL used only if UserName given
IN DWORD AuthFlags // OPTIONAL 0 ==> default??????
) ;
DWORD StoreCleanupHandle( // cleanup the handle
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved ) ;
enum { StoreGetChildType, StoreGetAbsoluteSameServerType, StoreGetAbsoluteOtherServerType } _StoreGetType;
DWORD StoreGetHandle( // get handle to child object, absolute object..
IN OUT LPSTORE_HANDLE hStore, // this gets modified..
IN DWORD Reserved, IN DWORD StoreGetType, // same server? just a simple child?
IN LPWSTR Path, IN OUT STORE_HANDLE *hStoreOut // new handle created..
) ;
DWORD StoreSetSearchOneLevel( // search will return everything one level below
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved ) ;
DWORD StoreSetSearchSubTree( // search will return the subtree below in ANY order
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved ) ;
DWORD StoreBeginSearch( IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR SearchFilter ) ;
DWORD StoreEndSearch( IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved ) ;
DWORD // ERROR_NO_MORE_ITEMS if exhausted
StoreSearchGetNext( IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, OUT LPSTORE_HANDLE hStoreOut ) ;
DWORD StoreCreateObjectVA( // create a new object - var-args ending with ADSTYPE_INVALID
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR NewObjName, // name of the new object -- must be "CN=name" types
... // fmt is AttrType, AttrName, AttrValue [AttrValueLen]
) ;
DWORD StoreCreateObjectL( // create the object as an array
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR NewObjName, // must be "CN=XXX" types
IN PADS_ATTR_INFO Attributes, // the required attributes
IN DWORD nAttributes // size of above array
) ;
#define StoreCreateObject StoreCreateObjectVA
DWORD StoreDeleteObject( IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR ObjectName ) ;
//DOC StoreDeleteThisObject deletes the object defined by hStore,StoreGetType and ADsPath.
//DOC The refer to the object just the same way as for StoreGetHandle.
DWORD StoreDeleteThisObject( // delete an object
IN LPSTORE_HANDLE hStore, // point of anchor frm which reference is done
IN DWORD Reserved, // must be zero, reserved for future use
IN DWORD StoreGetType, // path is relative, absolute or diff server?
IN LPWSTR Path // ADsPath to the object or relative path
) ;
DWORD StoreSetAttributesVA( // set the attributes, var_args interface (nearly similar to CreateVA)
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN OUT DWORD* nAttributesModified, ... // fmt is {ADSTYPE, CtrlCode, AttribName, Value}* ending in ADSTYPE_INVALID
) ;
DWORD StoreSetAttributesL( // PADS_ATTR_INFO array equiv for SetAttributesVA
IN OUT LPSTORE_HANDLE hStore, IN DWORD Reserved, IN OUT DWORD* nAttributesModified, IN PADS_ATTR_INFO AttribArray, IN DWORD nAttributes ) ;
typedef struct _EATTRIB { // encapsulated attribute
unsigned int Address1_present : 1; unsigned int Address2_present : 1; unsigned int Address3_present : 1; unsigned int ADsPath_present : 1; unsigned int StoreGetType_present : 1; unsigned int Flags1_present : 1; unsigned int Flags2_present : 1; unsigned int Dword1_present : 1; unsigned int Dword2_present : 1; unsigned int String1_present : 1; unsigned int String2_present : 1; unsigned int String3_present : 1; unsigned int String4_present : 1; unsigned int Binary1_present : 1; unsigned int Binary2_present : 1;
DWORD Address1; // character "i"
DWORD Address2; // character "j"
DWORD Address3; // character "k"
LPWSTR ADsPath; // character "p" "r" "l"
DWORD StoreGetType; // "p,r,l" ==> sameserver, child, otherserver
DWORD Flags1; // character "f"
DWORD Flags2; // character "g"
DWORD Dword1; // character "d"
DWORD Dword2; // character "e"
LPWSTR String1; // character "s"
LPWSTR String2; // character "t"
LPWSTR String3; // character "u"
LPWSTR String4; // character "v"
LPBYTE Binary1; // character "b"
DWORD BinLen1; // # of bytes of above
LPBYTE Binary2; // character "d"
DWORD BinLen2; // # of bytes of above
} EATTRIB, *PEATTRIB, *LPEATTRIB;
#define IS_ADDRESS1_PRESENT(pEA) ((pEA)->Address1_present)
#define IS_ADDRESS1_ABSENT(pEA) (!IS_ADDRESS1_PRESENT(pEA))
#define ADDRESS1_PRESENT(pEA) ((pEA)->Address1_present = 1 )
#define ADDRESS1_ABSENT(pEA) ((pEA)->Address1_present = 0 )
#define IS_ADDRESS2_PRESENT(pEA) ((pEA)->Address2_present)
#define IS_ADDRESS2_ABSENT(pEA) (!IS_ADDRESS2_PRESENT(pEA))
#define ADDRESS2_PRESENT(pEA) ((pEA)->Address2_present = 1 )
#define ADDRESS2_ABSENT(pEA) ((pEA)->Address2_present = 0 )
#define IS_ADDRESS3_PRESENT(pEA) ((pEA)->Address3_present)
#define IS_ADDRESS3_ABSENT(pEA) (!IS_ADDRESS3_PRESENT(pEA))
#define ADDRESS3_PRESENT(pEA) ((pEA)->Address3_present = 1 )
#define ADDRESS3_ABSENT(pEA) ((pEA)->Address3_present = 0 )
#define IS_ADSPATH_PRESENT(pEA) ((pEA)->ADsPath_present)
#define IS_ADSPATH_ABSENT(pEA) (!IS_ADSPATH_PRESENT(pEA))
#define ADSPATH_PRESENT(pEA) ((pEA)->ADsPath_present = 1)
#define ADSPATH_ABSENT(pEA) ((pEA)->ADsPath_present = 0)
#define IS_STOREGETTYPE_PRESENT(pEA) ((pEA)->StoreGetType_present)
#define IS_STOREGETTYPE_ABSENT(pEA) (!((pEA)->StoreGetType_present))
#define STOREGETTYPE_PRESENT(pEA) ((pEA)->StoreGetType_present = 1)
#define STOREGETTYPE_ABSENT(pEA) ((pEA)->StoreGetType_present = 0)
#define IS_FLAGS1_PRESENT(pEA) ((pEA)->Flags1_present)
#define IS_FLAGS1_ABSENT(pEA) (!((pEA)->Flags1_present))
#define FLAGS1_PRESENT(pEA) ((pEA)->Flags1_present = 1)
#define FLAGS1_ABSENT(pEA) ((pEA)->Flags1_present = 0)
#define IS_FLAGS2_PRESENT(pEA) ((pEA)->Flags2_present)
#define IS_FLAGS2_ABSENT(pEA) (!((pEA)->Flags2_present))
#define FLAGS2_PRESENT(pEA) ((pEA)->Flags2_present = 1)
#define FLAGS2_ABSENT(pEA) ((pEA)->Flags2_present = 0)
#define IS_DWORD1_PRESENT(pEA) ((pEA)->Dword1_present)
#define IS_DWORD1_ABSENT(pEA) (!((pEA)->Dword1_present))
#define DWORD1_PRESENT(pEA) ((pEA)->Dword1_present = 1)
#define DWORD1_ABSENT(pEA) ((pEA)->Dword1_present = 0)
#define IS_DWORD2_PRESENT(pEA) ((pEA)->Dword2_present)
#define IS_DWORD2_ABSENT(pEA) (!((pEA)->Dword2_present))
#define DWORD2_PRESENT(pEA) ((pEA)->Dword2_present = 1)
#define DWORD2_ABSENT(pEA) ((pEA)->Dword2_present = 0)
#define IS_STRING1_PRESENT(pEA) ((pEA)->String1_present)
#define IS_STRING1_ABSENT(pEA) (!((pEA)->String1_present))
#define STRING1_PRESENT(pEA) ((pEA)->String1_present = 1)
#define STRING1_ABSENT(pEA) ((pEA)->String1_present = 0)
#define IS_STRING2_PRESENT(pEA) ((pEA)->String2_present)
#define IS_STRING2_ABSENT(pEA) (!((pEA)->String2_present))
#define STRING2_PRESENT(pEA) ((pEA)->String2_present = 1)
#define STRING2_ABSENT(pEA) ((pEA)->String2_present = 0)
#define IS_STRING3_PRESENT(pEA) ((pEA)->String3_present)
#define IS_STRING3_ABSENT(pEA) (!((pEA)->String3_present))
#define STRING3_PRESENT(pEA) ((pEA)->String3_present = 1)
#define STRING3_ABSENT(pEA) ((pEA)->String3_present = 0)
#define IS_STRING4_PRESENT(pEA) ((pEA)->String4_present)
#define IS_STRING4_ABSENT(pEA) (!((pEA)->String4_present))
#define STRING4_PRESENT(pEA) ((pEA)->String4_present = 1)
#define STRING4_ABSENT(pEA) ((pEA)->String4_present = 0)
#define IS_BINARY1_PRESENT(pEA) ((pEA)->Binary1_present)
#define IS_BINARY1_ABSENT(pEA) (!((pEA)->Binary1_present))
#define BINARY1_PRESENT(pEA) ((pEA)->Binary1_present = 1)
#define BINARY1_ABSENT(pEA) ((pEA)->Binary1_present = 0)
#define IS_BINARY2_PRESENT(pEA) ((pEA)->Binary2_present)
#define IS_BINARY2_ABSENT(pEA) (!((pEA)->Binary2_present))
#define BINARY2_PRESENT(pEA) ((pEA)->Binary2_present = 1)
#define BINARY2_ABSENT(pEA) ((pEA)->Binary2_present = 0)
BOOL _inline IsAnythingPresent( IN PEATTRIB pEA ) { return IS_ADDRESS1_PRESENT(pEA) || IS_ADDRESS2_PRESENT(pEA) || IS_ADDRESS3_PRESENT(pEA) || IS_ADSPATH_PRESENT(pEA) || IS_STOREGETTYPE_PRESENT(pEA) || IS_FLAGS1_PRESENT(pEA) || IS_FLAGS2_PRESENT(pEA) || IS_DWORD1_PRESENT(pEA) || IS_DWORD2_PRESENT(pEA) || IS_STRING1_PRESENT(pEA) || IS_STRING2_PRESENT(pEA) || IS_STRING3_PRESENT(pEA) || IS_STRING4_PRESENT(pEA) || IS_BINARY1_PRESENT(pEA) || IS_BINARY2_PRESENT(pEA) ; }
BOOL _inline IsEverythingPresent( IN PEATTRIB pEA ) { return IS_ADDRESS1_PRESENT(pEA) && IS_ADDRESS2_PRESENT(pEA) && IS_ADDRESS3_PRESENT(pEA) && IS_ADSPATH_PRESENT(pEA) && IS_STOREGETTYPE_PRESENT(pEA) && IS_FLAGS1_PRESENT(pEA) && IS_FLAGS2_PRESENT(pEA) && IS_DWORD1_PRESENT(pEA) && IS_DWORD2_PRESENT(pEA) && IS_STRING1_PRESENT(pEA) && IS_STRING2_PRESENT(pEA) && IS_STRING3_PRESENT(pEA) && IS_STRING4_PRESENT(pEA) && IS_BINARY1_PRESENT(pEA) && IS_BINARY2_PRESENT(pEA) ; }
VOID _inline EverythingPresent( IN PEATTRIB pEA ) { ADDRESS1_PRESENT(pEA); ADDRESS2_PRESENT(pEA); ADDRESS3_PRESENT(pEA); ADSPATH_PRESENT(pEA); STOREGETTYPE_ABSENT(pEA); FLAGS1_PRESENT(pEA); FLAGS2_PRESENT(pEA); DWORD1_PRESENT(pEA); DWORD2_PRESENT(pEA); STRING1_PRESENT(pEA); STRING2_PRESENT(pEA); STRING3_PRESENT(pEA); STRING4_PRESENT(pEA); BINARY1_PRESENT(pEA); BINARY2_PRESENT(pEA); }
VOID _inline NothingPresent( IN PEATTRIB pEA ) { ADDRESS1_ABSENT(pEA); ADDRESS2_ABSENT(pEA); ADDRESS3_ABSENT(pEA); ADSPATH_ABSENT(pEA); STOREGETTYPE_ABSENT(pEA); FLAGS1_ABSENT(pEA); FLAGS2_ABSENT(pEA); DWORD1_ABSENT(pEA); DWORD2_ABSENT(pEA); STRING1_ABSENT(pEA); STRING2_ABSENT(pEA); STRING3_ABSENT(pEA); STRING4_ABSENT(pEA); BINARY1_ABSENT(pEA); BINARY2_ABSENT(pEA); }
DWORD StoreCollectAttributes( IN OUT PSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR AttribName, // this attrib must be some kind of a text string
IN OUT PARRAY ArrayToAddTo, // array of PEATTRIBs
IN DWORD RecursionDepth // 0 ==> no recursion
) ;
DWORD StoreCollectBinaryAttributes( IN OUT PSTORE_HANDLE hStore, IN DWORD Reserved, IN LPWSTR AttribName, // accept only attrib type OCTET_STRING
IN OUT PARRAY ArrayToAddTo, // array of PEATTRIBs
IN DWORD RecursionDepth // 0 ==> no recursion
) ;
//DOC StoreUpdateAttributes is sort of the converse of StoreCollectAttributes.
//DOC This function takes an array of type EATTRIB elements and updates the DS
//DOC with this array. This function does not work when the attrib is of type
//DOC OCTET_STRING etc. It works only with types that can be derived from
//DOC PrintableString.
DWORD StoreUpdateAttributes( // update a list of attributes
IN OUT LPSTORE_HANDLE hStore, // handle to obj to update
IN DWORD Reserved, // for future use, must be zero
IN LPWSTR AttribName, // name of attrib, must be string type
IN PARRAY Array // list of attribs
) ;
//DOC StoreUpdateBinaryAttributes is sort of the converse of StoreCollectBinaryAttributes
//DOC This function takes an array of type EATTRIB elements and updates the DS
//DOC with this array. This function works only when the attrib is of type
//DOC OCTET_STRING etc. It doesnt work with types that can be derived from
//DOC PrintableString!!!.
DWORD StoreUpdateBinaryAttributes( // update a list of attributes
IN OUT LPSTORE_HANDLE hStore, // handle to obj to update
IN DWORD Reserved, // for future use, must be zero
IN LPWSTR AttribName, // name of attrib, must be OCTET_STRING type
IN PARRAY Array // list of attribs
) ;
//========================================================================
// end of file
//========================================================================
|