home *** CD-ROM | disk | FTP | other *** search
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
-
- /*******************************************************************
- *
- * Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved.
- *
- *
- * DESCRIPTION: This header file defines the functions, structures,
- * and macros used to access the Microsoft Exchange
- * APIs for modifying entries in the Exchange 4.0 DIT.
- * These APIs permit a calling process to create,
- * modify, or delete DIT objects by specifying the
- * name of a CSV text file containing attributes
- * for objects to import into ( or to modify)
- * the DIT. See the Directory Access Functions
- * section of the Exchange Developer's Kit for
- * more detailed description of this interface.
- *
- * Calling programs must link with DAPI.LIB.
- *
- * Error and warning codes are defined in DAPIMSG.H
- *
- *
- *******************************************************************/
-
- /** include files **/
- #ifndef _WINDOWS_
- #include <windows.h>
- #endif
-
- /** local definitions **/
-
- #ifndef _DAPI_INCLUDED_
- #define _DAPI_INCLUDED_
-
- #ifdef __cplusplus
- extern "C"
- {
- #endif
-
- // Import / Export APIs check for the presence of this signature in
- // the dwDAPISignature field in the import parameter blocks.
- // This signature will be incremented each time one of the parameter
- // blocks is changed so that header synchronization problems can be
- // detected.
- #define DAPI_SIGNATURE 0x46414400
-
-
- // Combinable flags used to control the API functions.
-
- // The following flags control filtering of DAPI events
- // The default action is DAPI_EVENT_ALL
- #define DAPI_EVENT_MASK 0x00000007 /* bit-field containing event-filtering requested
- if none of these bits are set, DAPI_EVENT_ALL is assumed */
- #define DAPI_EVENT_MIN 0x00000001 /* No warning or error logging.
- Log start and stop messages */
- #define DAPI_EVENT_SOME 0x00000002 /* Start, Stop, and Error messages will be logged. */
- #define DAPI_EVENT_ALL 0x00000004 /* Start, Stop, Error, and Warning messages
- will be logged. */
-
- // The following flags control schema read and use of the schema
- #define DAPI_FORCE_SCHEMA_LOAD 0x00000010 /* Unload previously loaded schema
- and read schema again.
- Default action is to re-use
- previously loaded schema if read
- from the same messaging domain */
- #define DAPI_RAW_MODE 0x00000020 /* Import / Export in "Raw" mode. Import
- lines are taken literally. No
- attributes will be inherited,
- constructed, etc. Aliases for
- attribute and class names will
- not be recognized. */
-
- #define DAPI_OVERRIDE_CONTAINER 0x00000040 /* Container specified in the parameter block
- overrides the contents of the container column.
- Default behaviour is for the value specified
- in the Obj-Container column to override
- that specified in the parameter block */
-
- #define DAPI_IMPORT_NO_ERR_FILE 0x00000080 /* Do not create Error File -- BatchImport only */
- #define DAPI_IMPORT_WRITE_THROUGH 0x00400000 /* Commit write operations immediately */
-
- // Flags defined for "Batch" operations only -- ignored by DAPIRead, DAPIWrite
- #define DAPI_YES_TO_ALL 0x00000100 /* Force "yes" response on any
- user-prompt UI
- (i.e., continue w/o proxy addresses, etc.) */
-
- #define DAPI_SUPPRESS_PROGRESS 0x00000200 /* Suppress progress thermometer on batch operations.
- Default is to display progress */
- #define DAPI_SUPPRESS_COMPLETION 0x00000400 /* Suppress completion notification message box on batch operations */
-
- #define DAPI_SUPPRESS_ARCHIVES 0x00000800 /* Suppress creation of "archive" copies
- of output files -- BatchImport and BatchExport only*/
-
-
-
- // Flags defined for BatchExport
- #define DAPI_EXPORT_MAILBOX 0x00001000 /* Export Mailbox recipients */
- #define DAPI_EXPORT_CUSTOM 0x00002000 /* Export remote address recipients */
- #define DAPI_EXPORT_DIST_LIST 0x00004000 /* Export Distribution Lists */
- #define DAPI_EXPORT_RECIPIENTS (DAPI_EXPORT_MAILBOX | DAPI_EXPORT_CUSTOM | DAPI_EXPORT_DIST_LIST)
- /* Export all recipient objects */
-
- #define DAPI_EXPORT_ALL_CLASSES 0x00008000 /* If this flag is set, all objects meeting other restrictions
- (i.e., USN level, container scope, etc.) will be exported,
- regardless of class */
-
- #define DAPI_EXPORT_HIDDEN 0x00010000 /* Include Hidden objects in export.
- Default is no export if Hide-From-Address-Book */
- #define DAPI_EXPORT_SUBTREE 0x00020000 /* Traverse the Directory Information Tree hierarchy,
- exporting objects that meet the export restrictions */
- #define DAPI_EXPORT_BASEPOINT_ONLY 0x00040000 /* Export only the requested attributes from
- the named BasePoint object. All other
- export restrictions are ignored (class flags,
- rgpszClasses, pszServerName).
- This flag implies DAPI_SUPPRESS_PROGRESS
- and DAPI_SUPPRESS_COMPLETION */
-
- // Flags defined only for BatchImport
- #define DAPI_OVERRIDE_SYNCH_STATE 0x00080000 /* Override server's synchronization status,
- normally checked on BatchImport.
- NOTE: This flag should normally NOT be set.
- The normal behaviour is to prevent BatchImport
- operations from possible conflict with directory
- synchronization */
-
-
- // Flags defined only for DAPIRead
- #define DAPI_READ_DEFINED_ATTRIBUTES 0x00100000 /* return all attributes that are set
- for the current object.
- This flag is ignored if pAttributes is specified. */
-
- #define DAPI_READ_ALL_ATTRIBUTES 0x00200000 /* return all attributes that are defined
- for the class of the current object.
- This flag is ignored if pAttributes is specified. */
-
-
- // The following flags control NT Security management
- #define DAPI_RESTRICT_ACCESS 0x01000000 /* Apply NT Security Descriptor to
- created objects */
- #define DAPI_CREATE_NT_ACCOUNT 0x02000000 /* Create NT accounts
- (valid only in Create/Modify mode) */
- #define DAPI_CREATE_RANDOM_PASSWORD 0x04000000 /* Generate random passwords for
- created NT accounts. Ignored if DAPI_CREATE_NT_ACCOUNT
- is not set */
-
- #define DAPI_DELETE_NT_ACCOUNT 0x08000000 /* Delete ASSOC-NT-ACCOUNT when
- deleting mailbox */
- // Flags defined only for DAPIWrite
- #define DAPI_MODIFY_REPLACE_PROPERTIES 0x00800000 /* Append values to multi-value attributes when modifying */
-
- #define DAPI_WRITE_UPDATE 0x10000000 /* Modify if object exists, create if it doesn't.
- NOTE: This is the default mode */
- #define DAPI_WRITE_CREATE 0x20000000 /* Create object -- fail if object exists */
- #define DAPI_WRITE_MODIFY 0x30000000 /* Modify object -- fail if object does not exist */
- #define DAPI_WRITE_DELETE 0x40000000 /* Delete object */
- #define DAPI_WRITE_MODE_MASK 0x70000000
-
-
-
- // Callback flags
- #define DAPI_CALLBACK_CHAIN 0x00000001 /* If set in dwFlags field of the ERROR_CALLBACK
- and the CALLBACKPROGRESS structures, the default
- handler will be invoked after calling out to the
- caller-supplied handler function, unless the user
- function returns FALSE, indicating cancel.
- NOTE: This flag is not defined for the EXPORT_CALLBACK
- structure.
- NOTE: This flag should not be set in the dwFlags
- field of the main parameter block */
-
-
- // default delimiter values used when parsing the import file
-
- #define DAPI_DEFAULT_DELIMA ','
- #define DAPI_DEFAULT_QUOTEA '"'
- #define DAPI_DEFAULT_MV_SEPA '%'
- #define DAPI_DEFAULT_DELIMW L','
- #define DAPI_DEFAULT_QUOTEW L'"'
- #define DAPI_DEFAULT_MV_SEPW L'%'
-
-
- #define DAPI_CTRL_FILE_PTRA '='
- #define DAPI_CTRL_FILE_PTRW L'='
- #define DAPI_CTRL_ANR_PREFIXA '='
- #define DAPI_CTRL_ANR_PREFIXW L'='
- #define DAPI_CTRL_META_CHARA '~'
- #define DAPI_CTRL_META_CHARW L'~'
- #define pszSubstServerA "~SERVER"
- #define pszSubstServerW L"~SERVER"
- #define cchSubstServer ((sizeof (pszSubstServerA) / sizeof(CHAR)) - 1)
- #define pszDeleteKeyA "~DEL"
- #define pszDeleteKeyW L"~DEL"
- #define cchDeleteKey ((sizeof (pszDeleteKeyA) / sizeof(CHAR)) - 1)
-
- #define DAPI_UNICODE_FILE ((UINT)-1)
-
- #ifdef UNICODE
-
- #define DAPI_DEFAULT_DELIM DAPI_DEFAULT_DELIMW
- #define DAPI_DEFAULT_QUOTE DAPI_DEFAULT_QUOTEW
- #define DAPI_DEFAULT_MV_SEP DAPI_DEFAULT_MV_SEPW
- #define DAPI_CTRL_FILE_PTR DAPI_CTRL_FILE_PTRW
- #define DAPI_CTRL_ANR_PREFIX DAPI_CTRL_ANR_PREFIXW
- #define DAPI_CTRL_META_CHAR DAPI_CTRL_META_CHARW
- #define pszSubstServer pszSubstServerW
- #define pszDeleteKey pszDeleteKeyW
-
- #else
-
- #define DAPI_DEFAULT_DELIM DAPI_DEFAULT_DELIMA
- #define DAPI_DEFAULT_QUOTE DAPI_DEFAULT_QUOTEA
- #define DAPI_DEFAULT_MV_SEP DAPI_DEFAULT_MV_SEPA
- #define DAPI_CTRL_FILE_PTR DAPI_CTRL_FILE_PTRA
- #define DAPI_CTRL_ANR_PREFIX DAPI_CTRL_ANR_PREFIXA
- #define DAPI_CTRL_META_CHAR DAPI_CTRL_META_CHARA
- #define pszSubstServer pszSubstServerA
- #define pszDeleteKey pszDeleteKeyA
-
- #endif
-
-
- /*******************************************************************************
- * Batch Operation Progress Callback Function Definitions
- * Pointers to functions of these types are provided by the caller via the
- * CALLBACKPROGRESS structure in the Batch function parameter block
- *
- ********************************************************************************
- *
- * procedure : PDAPI_FInitProgress
- *
- * purpose : Initialize progress handler (possibly progress display dialog)
- *
- * parameters : lpvAppDefined value provided in the progress callback structure
- * nMac Maximum Anticipated Calls. If non-zero, this indicates
- * the number of progress events anticipated.
- * If zero, the number of items to process is unknown,
- * so the number of calls to UpdateProgress is indeterminate.
- *
- * returns : TRUE Indicates that all is well
- * FALSE Could not initialize progress handler, cancel session.
- *
- ********************************************************************************
- *
- * procedure : PDAPI_FResetProgress
- *
- * purpose : Re-initialize progress handler (possibly reset progress bar)
- *
- * parameters : lpvAppDefined value provided in the progress callback structure
- * nMac Maximum Anticipated Calls. If non-zero, this indicates
- * the number of progress events anticipated.
- * If zero, the number of items to process is unknown,
- * so the number of calls to UpdateProgress is indeterminate.
- *
- * returns : TRUE Indicates that all is well
- * FALSE Could not re-initialize progress handler, cancel session.
- *
- ********************************************************************************
- *
- * procedure : PDAPI_FEndProgress
- *
- * purpose : Terminate progress handler (possibly progress display dialog)
- *
- * parameters : lpvAppDefined value provided in the progress callback structure
- *
- * returns : TRUE Indicates that all is well
- * FALSE Could not terminate progress handler, cancel session.
- *
- ********************************************************************************
- *
- * procedure : PDAPI_FUpdateProgress
- *
- * purpose : Completed processing item. Called to indicate time to increment
- * progress display.
- *
- * parameters : lpvAppDefined value provided in the progress callback structure
- *
- * returns : TRUE Indicates that all is well
- * FALSE Cancel session (i.e., cancel button pressed).
- *
- ********************************************************************************
- *
- * procedure : PDAPI_FUpdateProgressText
- *
- * purpose : Replace progress text area with provided text string
- *
- * parameters : lpvAppDefined value provided in the progress callback structure
- *
- * returns : TRUE Indicates that all is well
- * FALSE Cancel session (i.e., cancel button pressed).
- *
- ********************************************************************************/
- typedef BOOL (PASCAL * PDAPI_FInitProgress)
- (LPVOID lpvAppDefined, INT nMac);
- typedef BOOL (PASCAL * PDAPI_FUpdateProgress)
- (LPVOID lpvAppDefined);
- typedef BOOL (PASCAL * PDAPI_FEndProgress)
- (LPVOID lpvAppDefined);
- typedef BOOL (PASCAL * PDAPI_FResetProgress)
- (LPVOID lpvAppDefined, INT nMac);
- typedef BOOL (PASCAL * PDAPI_FUpdateProgressText)
- (LPVOID lpvAppDefined, LPTSTR pszText);
-
- typedef struct CallBackProgressEntryPoints
- {
- DWORD dwFlags;
- LPVOID lpvAppDefined;
- PDAPI_FInitProgress pfnInitProgress;
- PDAPI_FUpdateProgress pfnUpdateProgress;
- PDAPI_FEndProgress pfnEndProgress;
- PDAPI_FResetProgress pfnResetProgress;
- PDAPI_FUpdateProgressText pfnUpdateProgressText;
- } CALLBACKPROGRESS, *PCALLBACKPROGRESS;
-
-
-
- // Values specified in the ulEvalTag field of the
- // DAPI_ENTRY and EXPORT_CALLBACK structures
- //
- typedef enum _DAPI_EVAL
- {
- VALUE_ARRAY = 0, // Each attribute has an entry in the array
- // Text strings and object names exported as text
- // Numerical values exported as numbers
- // Binary data exported as binary string
- TEXT_VALUE_ARRAY, // Each attribute has an entry in the array
- // All values converted to text representation
- TEXT_LINE // first item in the rgEntryValues array
- // is a delimited text line
- } DAPI_EVAL, *PDAPI_EVAL;
-
- typedef enum _EXP_TYPE_TAG
- {
- EXPORT_HEADER = 0, // export item contains column headers
- EXPORT_ENTRY // export item contains attribute values
- } EXP_TYPE, * PEXP_TYPE;
-
-
- typedef enum enumDAPI_DATA_TYPE
- {
- DAPI_NO_VALUE = 0,
- DAPI_STRING8,
- DAPI_UNICODE,
- DAPI_BINARY,
- DAPI_INT,
- DAPI_BOOL,
- } DAPI_DATA_TYPE, * PDAPI_DATA_TYPE;
-
- #ifdef UNICODE
- #define DAPI_TEXT DAPI_UNICODE
- #else
- #define DAPI_TEXT DAPI_STRING8
- #endif
-
- typedef union _DAPI_VALUE
- {
- LPSTR pszA;
- LPWSTR pszW;
- #ifdef UNICODE
- LPWSTR pszValue;
- #else
- LPSTR pszValue;
- #endif
- LPBYTE lpBinary;
- INT iValue;
- #ifdef __BORLANDC__
- BOOL _bool;
- #else
- BOOL bool;
- #endif
- } DAPI_VALUE, * PDAPI_VALUE;
-
-
-
- // The ATT_VALUE structure contains a text representation of an attribute value
- // A linked list of these structures is used for a multi-valued attribute
- typedef struct _ATT_VALUE
- {
- DAPI_DATA_TYPE DapiType; // How to evaluate DAPI_VALUE union
- DAPI_VALUE Value;
- UINT size; // size of the value --
- // # chars if string type
- // else, # bytes
- struct _ATT_VALUE * pNextValue;
- } ATT_VALUE, * PATT_VALUE;
-
-
- typedef struct _DAPI_ENTRY
- {
- UINT unAttributes; // Number of attributes exported
- DAPI_EVAL ulEvalTag; // rgEntryValues is interpreted based on this value
- PATT_VALUE rgEntryValues; // if (ulEvalTag == TEXT_LINE)
- // There is a single value, w/ delimited line
- // else
- // unAttributes, each w/ 1 or more value in list
- } DAPI_ENTRY, * PDAPI_ENTRY;
-
- // Define type for address of application routine
- // for call-back on each exported entry.
- // Return value of FALSE indicates that export operation should be cancelled
- typedef BOOL (PASCAL DAPI_FNExportEntry) (
- EXP_TYPE ExportDataType, // What type of data is being exported
- LPVOID lpvAppDefined, // Application-defined parameter,
- // passed in EXPORT_CALLBACK structure
- // on initialization
- PDAPI_ENTRY pExportEntry // pointer to exported entry data
- // NOTE: Data in this structure
- // will NOT remain valid after return
- // from this function
- );
- typedef DAPI_FNExportEntry * PDAPI_FNExportEntry;
-
- typedef struct _EXPORT_CALLBACK
- {
- DWORD dwFlags; // Flags defined to control callback functionality
- // See flag definitions below
- DAPI_EVAL ulEvalTag; // Specifies data format on callback
- LPVOID lpvAppDefined; // Application-defined field, passed as parm to callback
- PDAPI_FNExportEntry pfnExportEntry; // Pointer to function called to process
- // each exported entry
-
- } EXPORT_CALLBACK, * PEXPORT_CALLBACK;
-
-
-
- /*******************************************************************************
- * procedure : pfnErrorCallback
- *
- * purpose : The following section defines structures for the error callback
- * mechanism of the Batch Import APIs
- * Events will be filtered based on the ControlfFlags set in the
- * API parameter block
- *
- ********************************************************************************/
-
- // Define flags used for export callback
-
- // Define the maximum number of substitutions in a single event string
- #define DAPI_MAX_SUBST 8
-
-
- typedef struct _DAPI_EVENTA
- {
- DWORD dwDAPIError; // Message ID for event log
- LPSTR rgpszSubst[DAPI_MAX_SUBST]; // Event message substitution array
- UINT unSubst; // number of substitution strings
- LPSTR pszAttribute; // Name of attribute specifically affected
- // Note: may be NULL on some errors
- LPSTR pszHoldLine; // point to buffer containing copy
- // of current import line
- HINSTANCE hinstDAPI; // Instance of DAPI DLL
- struct _DAPI_EVENTA * pNextEvent; // Pointer to next event
- } DAPI_EVENTA, *PDAPI_EVENTA;
-
- typedef struct _DAPI_EVENTW
- {
- DWORD dwDAPIError; // Message ID for event log
- LPWSTR rgpszSubst[DAPI_MAX_SUBST]; // Event message substitution array
- UINT unSubst; // number of substitution strings
- LPWSTR pszAttribute; // Name of attribute specifically affected
- // Note: may be NULL on some errors
- LPWSTR pszHoldLine; // point to buffer containing copy
- // of current import line
- HINSTANCE hinstDAPI; // Instance of DAPI DLL
- struct _DAPI_EVENTW * pNextEvent; // Pointer to next event
- } DAPI_EVENTW, *PDAPI_EVENTW;
-
- #ifdef UNICODE
- typedef DAPI_EVENTW DAPI_EVENT;
- typedef PDAPI_EVENTW PDAPI_EVENT;
- #else
- typedef DAPI_EVENTA DAPI_EVENT;
- typedef PDAPI_EVENTA PDAPI_EVENT;
- #endif
-
- // Define type for address of application routine
- // for call-back on each error encountered.
- // Return value of FALSE indicates that operation should be cancelled
- typedef BOOL (PASCAL DAPI_FNErrorCallback) (
- LPVOID lpvAppDefined, // Application-defined parameter,
- // passed in EXPORT_CALLBACK structure
- // on initialization
- PDAPI_EVENT pDapiEvent // Event information structure
- // NOTE: Data in the event record
- // will NOT remain valid after return
- // from this function
- );
- typedef DAPI_FNErrorCallback * PDAPI_FNErrorCallback;
-
-
- typedef struct tagERROR_CALLBACK
- {
- DWORD dwFlags; // Flags defined to control callback functionality
- // See flag definitions above
- LPVOID lpvAppDefined; // Application-defined field, passed back in callback
- PDAPI_FNErrorCallback pfnErrorCallback; // Address of function that should be
- // called on each error encountered
- // If not supplied (NULL), default
- // error handler is called, which
- // writes the error into the
- // NT Application event log
-
- } ERROR_CALLBACK, * PERROR_CALLBACK;
-
-
-
-
-
- /*******************************************************************************
- *
- * Batch Directory Import Interface definitions
- *
- ********************************************************************************/
-
- /*******************************************************************************
- * procedure : DAPIUninitialize
- *
- * purpose : Notify DAPI that it is time to terminate background threads
- * and such in preparation for process shutdown
- *
- * parameters : dwFlags combinable bits which may be set to control function
- *
- * returns : nothing
- *
- * created : 11/01/95
- *
- * changes :
- *
- ********************************************************************************/
- extern void APIENTRY DAPIUninitialize (
- DWORD dwFlags // Flags for call
- );
-
-
-
- /*******************************************************************************
- * procedure : SchemaPreload
- *
- * purpose : Called to perform asyncronous schema load. This entry point
- * spawns a thread that initializes all the attribute and class
- * tables for normal import/export operation.
- *
- * parameters : pSchemaPreloadParms pointer to SchemaPreloadParameter block
- *
- * returns : nothing
- *
- * history :
- *
- ********************************************************************************/
- extern void APIENTRY SchemaPreloadA (
- DWORD dwFlags, // Flags used to control schema load.
- LPSTR pszDSA // name of DSA from which to read schema
- );
-
- extern void APIENTRY SchemaPreloadW (
- DWORD dwFlags, // Flags used to control schema load.
- LPWSTR pszDSA // name of DSA from which to read schema
- );
-
- #ifdef UNICODE
- #define SchemaPreload SchemaPreloadW
- #else
- #define SchemaPreload SchemaPreloadA
- #endif
-
- typedef struct _BIMPORT_PARMSW
- {
- // NOTE: the order of the first three fields of this structure
- // should NOT be changed.
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control import action
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPWSTR pszImportFile; // Fully qualified pathname to Import Data file
- // On Batch Import, objects are imported into
- // the DIT from this file.
- UINT uCodePage; // Code page specification for import file.
- // The following values are interpreted:
- // DAPI_UNICODE_FILE Import file is Unicode
- // Will return error if file is ANSI
- // 0 Auto-detect file type
- // If ANSI, assume CP_ACP
- // other File contains text in the
- // specified code page
- // Will return error if file is Unicode
- // Will return error if code page is not
- // supported by the system
- LPWSTR pszDSAName; // Computer name of DSA to update
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPWSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPWSTR pszContainer; // RDN of default container under which
- // to perform bulk import operations
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // bulk operations will be performed at
- // the level below BaseImportPoint.
- // Container names specified in the
- // import file will override this value.
- WCHAR chColSep; // Column Separator --
- // DEFAULT_DELIM is used if this value is zero
- WCHAR chQuote; // String enclosing character --
- // DEFAULT_QUOTE is used if this value is zero
- WCHAR chMVSep; // Multi-value Property Separator --
- // DEFAULT_MV_SEP is used if this value is zero
- WCHAR creserved; // alignment
- CALLBACKPROGRESS ProgressCallBacks; // Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
-
- LPWSTR pszNTDomain; // Name of NT Domain in which to lookup / create NT accounts.
- // Defaults to current logon domain if NULL or empty
- LPWSTR pszCreateTemplate; // DN of the Default User (NULL if none) from which
- // to draw template values
-
- } BIMPORT_PARMSW, *PBIMPORT_PARMSW, *LPBIMPORT_PARMSW;
-
- typedef struct _BIMPORT_PARMSA
- {
- // NOTE: the order of the first three fields of this structure
- // should NOT be changed.
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control import action
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPSTR pszImportFile; // Fully qualified pathname to Import Data file
- // On Batch Import, objects are imported into
- // the DIT from this file.
- UINT uCodePage; // Code page specification for import file.
- // The following values are interpreted:
- // DAPI_UNICODE_FILE Import file is Unicode
- // Will return error if file is ANSI
- // 0 Auto-detect file type
- // If ANSI, assume CP_ACP
- // other File contains text in the
- // specified code page
- // Will return error if file is Unicode
- // Will return error if code page is not
- // supported by the system
- LPSTR pszDSAName; // Computer name of DSA to update
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPSTR pszContainer; // RDN of default container under which
- // to perform bulk import operations
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // bulk operations will be performed at
- // the level below BaseImportPoint.
- // Container names specified in the
- // import file will override this value.
- CHAR chColSep; // Column Separator --
- // DEFAULT_DELIM is used if this value is zero
- CHAR chQuote; // String enclosing character --
- // DEFAULT_QUOTE is used if this value is zero
- CHAR chMVSep; // Multi-value Property Separator --
- // DEFAULT_MV_SEP is used if this value is zero
- CHAR creserved; // alignment
- CALLBACKPROGRESS ProgressCallBacks; // Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
-
- LPSTR pszNTDomain; // Name of NT Domain in which to lookup / create NT accounts.
- // Defaults to current logon domain if NULL or empty
- LPSTR pszCreateTemplate; // DN of the Default User (NULL if none) from which
- // to draw template values
-
- } BIMPORT_PARMSA, *PBIMPORT_PARMSA, *LPBIMPORT_PARMSA;
-
- #ifdef UNICODE
- typedef BIMPORT_PARMSW BIMPORT_PARMS;
- typedef PBIMPORT_PARMSW PBIMPORT_PARMS;
- typedef LPBIMPORT_PARMSW LPBIMPORT_PARMS;
- #else
- typedef BIMPORT_PARMSA BIMPORT_PARMS;
- typedef PBIMPORT_PARMSA PBIMPORT_PARMS;
- typedef LPBIMPORT_PARMSA LPBIMPORT_PARMS;
- #endif
-
- // The BatchImport function provides single-call BatchImport from the
- // specified import file. All import parameters are specified in the
- // BIMPORT_PARMS structure pointed to by lpBimportParms.
- // The return value indicates the number of errors logged in the
- // NT Application log. Please note that this does not indicate
- // success or failure of the Batch Import.
- // UI and Logging of errors and warnings into the Application log
- // are controlled through import parameters.
- extern DWORD APIENTRY BatchImportW (LPBIMPORT_PARMSW lpBimportParms);
- extern DWORD APIENTRY BatchImportA (LPBIMPORT_PARMSA lpBimportParms);
-
- #ifdef UNICODE
- #define BatchImport BatchImportW
- #else
- #define BatchImport BatchImportA
- #endif
-
- /*******************************************************************************
- *
- * Batch Directory Export Interface definitions
- *
- ********************************************************************************/
-
- typedef struct _BEXPORT_PARMSW
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control export action
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPWSTR pszExportFile; // Fully qualified pathname of file to export into
- // Ignored if ExportCallback is specified
- UINT uCodePage; // Code page specification for export file.
- // The following values are interpreted:
- // DAPI_UNICODE_FILE Export file is Unicode.
- // Will return error
- // if file exists and is ANSI
- // 0 Auto-detect file type
- // If file does not exist,
- // export file will contain CP_ACP text.
- // If file exists and is ANSI
- // export file will contain CP_ACP text.
- // If file exists and is Unicode,
- // export file will contain Unicode
- // other Export text to file in the
- // specified code page
- // Will return error
- // if file exists and is Unicode
- // Will return error if code page is not
- // supported by the system
- LPWSTR pszDSAName; // Computer name of DSA from which to export
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPWSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPWSTR pszContainer; // RDN of container from which to export objects
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // the contents of all containers below
- // the BaseImportPoint will be exported.
- WCHAR chColSep; // Column Separator --
- // DEFAULT_DELIM is used if this value is zero
- WCHAR chQuote; // String enclosing character --
- // DEFAULT_QUOTE is used if this value is zero
- WCHAR chMVSep; // Multi-value Property Separator --
- // DEFAULT_MV_SEP is used if this value is zero
- WCHAR cReserved; // alignment
-
- CALLBACKPROGRESS ProgressCallBacks; // Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- PDAPI_ENTRY pAttributes; // DAPI_ENTRY filled with names of attributes to export
- // Optional if pszExportFile specified
- // Required if ExportCallback specified
- LPWSTR pszHomeServer; // Name of server for server-associated export
- LPWSTR * rgpszClasses; // array of pointers to zero-terminated object classes to export
- // The last entry must be NULL
- // NOTE: The Directory will be queried for objects
- // of the classes in the specified order.
- ULONG ulUSNBase; // Base USN to use for export restriction.
- // If non-zero, only items having USN-Changed >= ulUSNBase will be exported
- LPVOID pReserved; // Reserved -- Must be zero
-
- } BEXPORT_PARMSW, *PBEXPORT_PARMSW, *LPBEXPORT_PARMSW;
-
- typedef struct _BEXPORT_PARMSA
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control export action
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPSTR pszExportFile; // Fully qualified pathname of file to export into
- // Ignored if ExportCallback is specified
- UINT uCodePage; // Code page specification for export file.
- // The following values are interpreted:
- // DAPI_UNICODE_FILE Export file is Unicode.
- // Will return error
- // if file exists and is ANSI
- // 0 Auto-detect file type
- // If file does not exist,
- // export file will contain CP_ACP text.
- // If file exists and is ANSI
- // export file will contain CP_ACP text.
- // If file exists and is Unicode,
- // export file will contain Unicode
- // other Export text to file in the
- // specified code page
- // Will return error
- // if file exists and is Unicode
- // Will return error if code page is not
- // supported by the system
- LPSTR pszDSAName; // Computer name of DSA from which to export
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPSTR pszContainer; // RDN of container from which to export objects
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // the contents of all containers below
- // the BaseImportPoint will be exported.
- CHAR chColSep; // Column Separator --
- // DEFAULT_DELIM is used if this value is zero
- CHAR chQuote; // String enclosing character --
- // DEFAULT_QUOTE is used if this value is zero
- CHAR chMVSep; // Multi-value Property Separator --
- // DEFAULT_MV_SEP is used if this value is zero
- CHAR cReserved; // alignment
-
- CALLBACKPROGRESS ProgressCallBacks; // Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- PDAPI_ENTRY pAttributes; // DAPI_ENTRY filled with names of attributes to export
- // Optional if pszExportFile specified
- // Required if ExportCallback specified
- LPSTR pszHomeServer; // Name of server for server-associated export
- LPSTR * rgpszClasses; // array of pointers to zero-terminated object classes to export
- // The last entry must be NULL
- // NOTE: The Directory will be queried for objects
- // of the classes in the specified order.
- ULONG ulUSNBase; // Base USN to use for export restriction.
- // If non-zero, only items having USN-Changed >= ulUSNBase will be exported
- LPVOID pReserved; // Reserved -- Must be zero
-
- } BEXPORT_PARMSA, *PBEXPORT_PARMSA, *LPBEXPORT_PARMSA;
-
-
- #ifdef UNICODE
- typedef BEXPORT_PARMSW BEXPORT_PARMS;
- typedef PBEXPORT_PARMSW PBEXPORT_PARMS;
- typedef LPBEXPORT_PARMSW LPBEXPORT_PARMS;
- #else
- typedef BEXPORT_PARMSA BEXPORT_PARMS;
- typedef PBEXPORT_PARMSA PBEXPORT_PARMS;
- typedef LPBEXPORT_PARMSA LPBEXPORT_PARMS;
- #endif
-
-
-
- // Batch Export entry points
-
- // The BatchExport function provides single-call BatchExport from the
- // specified import file. All import parameters are specified in the
- // BEXPORT_PARMS structure pointed to by lpBexportParms.
- // The return value indicates the number of errors logged in the
- // NT Application log. Please note that this does not indicate
- // success or failure of the Batch Export.
- // UI and Logging of errors and warnings into the Application log
- // are controlled through import parameters.
- extern DWORD APIENTRY BatchExportW (LPBEXPORT_PARMSW lpBexportParms);
- extern DWORD APIENTRY BatchExportA (LPBEXPORT_PARMSA lpBexportParms);
-
- #ifdef UNICODE
- #define BatchExport BatchExportW
- #else
- #define BatchExport BatchExportA
- #endif
-
-
- /*******************************************************************************
- *
- * Single-Object Interface definitions
- *
- ********************************************************************************/
-
- typedef struct _DAPI_PARMSW
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control import action
- // See Import Control flags defined above.
- LPWSTR pszDSAName; // Computer name of DSA to update
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPWSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPWSTR pszContainer; // RDN of default container under which
- // to perform bulk import operations
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // bulk operations will be performed at
- // the level below BaseImportPoint.
- // Container names specified in the
- // import file will override this value.
- LPWSTR pszNTDomain; // Name of NT Domain in which to lookup accounts
- // and to create NT accounts.
- // Current logon domain is used if NULL or empty string.
- LPWSTR pszCreateTemplate;// DN of the template object used for default values
- PDAPI_ENTRY pAttributes; // DAPI_ENTRY filled with default attribute list
- } DAPI_PARMSW, *PDAPI_PARMSW, FAR *LPDAPI_PARMSW;
-
- typedef struct _DAPI_PARMSA
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control import action
- // See Import Control flags defined above.
- LPSTR pszDSAName; // Computer name of DSA to update
- // Default: local DSA (if operating)
- // if no local DSA, first DSA found
- // on network is used
- LPSTR pszBasePoint; // DN of base-point in DIT for bulk operations
- // Default values:
- // if NULL, Messaging Site containing bound server
- // if empty string, enterprise containing bound server
- LPSTR pszContainer; // RDN of default container under which
- // to perform bulk import operations
- // NOTE: This container is assumed to be
- // at the level below that indicated by
- // the pszBasePoint. If NULL,
- // bulk operations will be performed at
- // the level below BaseImportPoint.
- // Container names specified in the
- // import file will override this value.
- LPSTR pszNTDomain; // Name of NT Domain in which to lookup accounts
- // and to create NT accounts.
- // Current logon domain is used if NULL or empty string.
- LPSTR pszCreateTemplate; // DN of the template object used for default values
- PDAPI_ENTRY pAttributes; // DAPI_ENTRY filled with default attribute list
- } DAPI_PARMSA, *PDAPI_PARMSA, FAR *LPDAPI_PARMSA;
-
-
- #ifdef UNICODE
- typedef DAPI_PARMSW DAPI_PARMS;
- typedef PDAPI_PARMSW PDAPI_PARMS;
- typedef LPDAPI_PARMSW LPDAPI_PARMS;
- #else
- typedef DAPI_PARMSA DAPI_PARMS;
- typedef PDAPI_PARMSA PDAPI_PARMS;
- typedef LPDAPI_PARMSA LPDAPI_PARMS;
- #endif
-
-
- typedef LPVOID DAPI_HANDLE;
- typedef LPVOID * PDAPI_HANDLE;
- typedef LPVOID FAR * LPDAPI_HANDLE;
-
- #define DAPI_INVALID_HANDLE ((DAPI_HANDLE) -1)
-
-
-
- // DAPIStart initializes a DAPI session.
- // for use by DAPIRead and DAPIWrite. The return value is 0 if no errors
- // are encountered. A pointer to a DAPI_EVENT structure is returned if an
- // error is encountered.
- // NOTE: The DAPI_HANDLE must be returned via a call to DAPIEnd.
- // If a non-NULL value is returned, its memory must be freed by
- // a call to DAPIFreeMemory
- extern PDAPI_EVENTW APIENTRY DAPIStartW (LPDAPI_HANDLE lphDAPISession,
- LPDAPI_PARMSW lpDAPIParms);
- extern PDAPI_EVENTA APIENTRY DAPIStartA (LPDAPI_HANDLE lphDAPISession,
- LPDAPI_PARMSA lpDAPIParms);
-
- #ifdef UNICODE
- #define DAPIStart DAPIStartW
- #else
- #define DAPIStart DAPIStartA
- #endif
-
- // DAPIEnd invalidates the DAPI_HANDLE obtained by the call to DAPIStart.
- // NOTE: There are no separate Unicode / Ansi entry points defined
- extern void APIENTRY DAPIEnd (LPDAPI_HANDLE lphDAPISession);
-
-
- // DAPIRead() Reads indicated attributes from the named Directory Object
- // Parameters:
- // Returned value: NULL indicates no difficulties encountered.
- // Else, pointer to structure containing description of
- // error(s) or warning(s) encountered.
- // Must be freed by call to DAPIFreeMemory.
- // hDAPISession DAPI Session handle obtained via InitDAPISession
- // dwFlags control operation
- // pszObjectName String containing name of object to read.
- // If specified as RDN, combined w/ session's
- // pszBasePoint and pszParentContainer.
- // If specified w/ prefix of "/cn=", the string
- // is concatenated to the session pszBasePoint.
- // If specified w/ prefix of "/o=", the string
- // is taken to be a fully-qualified DN.
- // pAttList Pointer to DAPI_ENTRY structure containing names of
- // attributes to read. The session default list is
- // overridden for the present call only.
- // ppValues Address of variable receiving pointer to DAPI_ENTRY
- // structure containing the values read from the DIT entry.
- // The pointer returned must be freed by call to
- // DAPIFreeMemory.
- // ppAttributes Address of variable receiving pointer to DAPI_ENTRY
- // structure containing the names of attributes read
- // from the DIT IFF DAPI_ALL_ATTRIBUTES or DAPI_LEGAL_ATTRIBUTES
- // were set in dwFlags.
- // The pointer returned must be freed by call to
- // DAPIFreeMemory.
- extern PDAPI_EVENTW APIENTRY DAPIReadW (DAPI_HANDLE hDAPISession,
- DWORD dwFlags,
- LPWSTR pszObjectName,
- PDAPI_ENTRY pAttList,
- PDAPI_ENTRY * ppValues,
- PDAPI_ENTRY * ppAttributes);
- extern PDAPI_EVENTA APIENTRY DAPIReadA (DAPI_HANDLE hDAPISession,
- DWORD dwFlags,
- LPSTR pszObjectName,
- PDAPI_ENTRY pAttList,
- PDAPI_ENTRY * ppValues,
- PDAPI_ENTRY * ppAttributes);
-
- #ifdef UNICODE
- #define DAPIRead DAPIReadW
- #else
- #define DAPIRead DAPIReadA
- #endif
-
-
- // DAPIWrite()
- // Perform the indicated write operation on the named object
- // Returned value: NULL indicates no difficulties encountered.
- // Else, pointer to structure containing description of
- // error(s) or warning(s) encountered.
- // Must be freed by call to DAPIFreeMemory.
- // Parameters:
- // hDAPISession DAPI Session handle obtained via InitDAPISession
- // dwFlags Operational control
- // pAttributes Pointer to DAPI_ENTRY structure containing names of
- // attributes to write. The session default list is
- // used if this parameter is NULL
- // pValues Pointer to DAPI_ENTRY structure containing the values
- // to set on the DIT entry.
- // lpulUSN Optional: Address of variable receiving USN of updated
- // DIT entry. May be specified as NULL to suppress this
- // return value.
- // lppszCreatedAccount Address receiving pointer to name of created NT account
- // lppszPassword Address receiving pointer to password generated if
- // NT Account is created.
- extern PDAPI_EVENTW APIENTRY DAPIWriteW (DAPI_HANDLE hDAPISession,
- DWORD dwFlags,
- PDAPI_ENTRY pAttributes,
- PDAPI_ENTRY pValues,
- PULONG lpulUSN,
- LPWSTR * lppszCreatedAccount,
- LPWSTR * lppszPassword);
- extern PDAPI_EVENTA APIENTRY DAPIWriteA (DAPI_HANDLE hDAPISession,
- DWORD dwFlags,
- PDAPI_ENTRY pAttributes,
- PDAPI_ENTRY pValues,
- PULONG lpulUSN,
- LPSTR * lppszCreatedAccount,
- LPSTR * lppszPassword);
- #ifdef UNICODE
- #define DAPIWrite DAPIWriteW
- #else
- #define DAPIWrite DAPIWriteA
- #endif
-
-
- /*******************************************************************************
- * procedure : DAPIAllocBuffer
- *
- * purpose : Allocate buffer, logically linking it to the pvAllocBase
- * The first buffer in logically linked set of allocations must be
- * freed by call to DAPIFreeMemory
- *
- * parameters : cbSize dword containing size of allocation request (in bytes)
- * pvAllocBase base for logical linking of allocated block
- * May be NULL
- * If non-NULL, must be a block previously allocated
- * by DAPIAllocBuffer or returned by DAPI function
- *
- * returns : ptr to allocated block
- *
- * history :
- *
- ********************************************************************************/
- extern LPVOID APIENTRY DAPIAllocBuffer (DWORD cbSize, LPVOID pvAllocBase);
-
-
- /*******************************************************************************
- * procedure : DAPIFreeMemory
- *
- * purpose : Release memory allocated for structures returned by DAPI calls.
- *
- * parameters : lpVoid pointer to block to free
- *
- * returns : nothing
- *
- * history :
- *
- ********************************************************************************/
- extern void APIENTRY DAPIFreeMemory (LPVOID lpVoid);
-
-
- /*
- * NetUserList interface definitions
- */
- // When getting callbacks from NTExport / NWExport, these indices
- // can be used to interpret the value array returned in the callback
- // >>>> NOTE: These indices are NOT valid for Bexport callback! <<<<
- #define NET_CLASS 0
- #define NET_COMMON_NAME 1
- #define NET_DISPLAY_NAME 2
- #define NET_HOME_SERVER 3
- #define NET_COMMENT 4 /* NTExport only */
-
- #define NTEXP_ENTRY_COUNT 5 /* number of parts in NT User export */
- #define NWEXP_ENTRY_COUNT 4 /* number of parts in NetWare user export */
-
-
-
- /*******************************************************************************
- *
- * NTIMPORT Interface definitions
- *
- ********************************************************************************/
-
- typedef struct _NTEXPORT_PARMSW
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control the user export
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPWSTR pszExportFile; // Name of file to create
- // Ignored if using callbacks
- CALLBACKPROGRESS ProgressCallBacks;// Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- LPWSTR pszDCName; // Name of Domain Controller from which to get users
- // NOTE: Specification of Domain Controller overrides
- // the NTDomain
- LPWSTR pszNTDomain; // Name of Domain from which to read users
- // If neither pszNTDomain and pszDCName are specified,
- // users are extracted from the current login domain
- } NTEXPORT_PARMSW, *PNTEXPORT_PARMSW, FAR *LPNTEXPORT_PARMSW;
-
- typedef struct _NTEXPORT_PARMSA
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control the user export
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPSTR pszExportFile; // Name of file to create
- // Ignored if using callbacks
- CALLBACKPROGRESS ProgressCallBacks;// Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- LPSTR pszDCName; // NOTE: Specification of Domain Controller overrides
- // the NTDomain
- // Name of Domain from which to read users
- LPSTR pszNTDomain; // If neither pszNTDomain and pszDCName are specified,
- // users are extracted from the current login domain
-
- } NTEXPORT_PARMSA, *PNTEXPORT_PARMSA, FAR *LPNTEXPORT_PARMSA;
-
- #ifdef UNICODE
- typedef NTEXPORT_PARMSW NTEXPORT_PARMS;
- typedef PNTEXPORT_PARMSW PNTEXPORT_PARMS;
- typedef LPNTEXPORT_PARMSW LPNTEXPORT_PARMS;
- #else
- typedef NTEXPORT_PARMSA NTEXPORT_PARMS;
- typedef PNTEXPORT_PARMSA PNTEXPORT_PARMS;
- typedef LPNTEXPORT_PARMSA LPNTEXPORT_PARMS;
- #endif
-
- extern DWORD APIENTRY NTExportW (LPNTEXPORT_PARMSW pNTExportParms);
- extern DWORD APIENTRY NTExportA (LPNTEXPORT_PARMSA pNTExportParms);
-
- #ifdef UNICODE
- #define NTExport NTExportW
- #else
- #define NTExport NTExportA
- #endif
-
-
- /*******************************************************************************
- *
- * NWIMPORT Interface definitions
- *
- ********************************************************************************/
-
- typedef struct _NWEXPORT_PARMSW
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control the user export
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPWSTR pszExportFile; // Name of file to create
- // Ignored if using callbacks
- CALLBACKPROGRESS ProgressCallBacks;// Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- LPWSTR pszFileServer; // Name of the file server to connect to
- LPWSTR pszUserName; // User Name -- Must have administrator priviliges
- LPWSTR pszPassword; // Password to connect to the server
- } NWEXPORT_PARMSW, *PNWEXPORT_PARMSW, *LPNWEXPORT_PARMSW;
-
- typedef struct _NWEXPORT_PARMSA
- {
- DWORD dwDAPISignature;
- DWORD dwFlags; // Bitmapped flags that control the user export
- HWND hwndParent; // Windows handle to use when displaying message boxes
- LPSTR pszExportFile; // Name of file to create
- // Ignored if using callbacks
- CALLBACKPROGRESS ProgressCallBacks;// Progress call-back entry points
- ERROR_CALLBACK ErrorCallback;
- EXPORT_CALLBACK ExportCallback; // Structure filled in by calling app to
- // receive callback on each exported item
- // NOTE: Callback functions are optional
- // The default export function (write to file)
- // will be called if these pointers are NULL
- LPSTR pszFileServer; // Name of the file server to connect to
- LPSTR pszUserName; // User Name -- Must have administrator priviliges
- LPSTR pszPassword; // Password to connect to the server
- } NWEXPORT_PARMSA, *PNWEXPORT_PARMSA, *LPNWEXPORT_PARMSA;
-
- #ifdef UNICODE
- typedef NWEXPORT_PARMSW NWEXPORT_PARMS;
- typedef PNWEXPORT_PARMSW PNWEXPORT_PARMS;
- typedef LPNWEXPORT_PARMSW LPNWEXPORT_PARMS;
- #else
- typedef NWEXPORT_PARMSA NWEXPORT_PARMS;
- typedef PNWEXPORT_PARMSA PNWEXPORT_PARMS;
- typedef LPNWEXPORT_PARMSA LPNWEXPORT_PARMS;
- #endif
-
- extern DWORD APIENTRY NWExportW (LPNWEXPORT_PARMSW pNWExportParms);
- extern DWORD APIENTRY NWExportA (LPNWEXPORT_PARMSA pNWExportParms);
-
- #ifdef UNICODE
- #define NWExport NWExportW
- #else
- #define NWExport NWExportA
- #endif
-
-
- // Definitions for the DAPIGetSiteInfo call
-
- typedef struct _NAME_INFOA
- {
- LPSTR pszName; // Simple object name
- LPSTR pszDNString; // DN of object
- LPSTR pszDisplayName; // Display name of object
- } NAME_INFOA, *PNAME_INFOA;
-
- typedef struct _NAME_INFOW
- {
- LPWSTR pszName; // Simple object name
- LPWSTR pszDNString; // DN of object
- LPWSTR pszDisplayName; // Display name of object
- } NAME_INFOW, *PNAME_INFOW;
-
- typedef struct _PSITE_INFOA
- {
- LPSTR pszCountry; // Country code
- NAME_INFOA objServer; // Name information for server
- NAME_INFOA objSite; // Name information for site containing server
- NAME_INFOA objEnterprise; // Name information for enterprise containing server
- } SITE_INFOA, *PSITE_INFOA;
-
- typedef struct _PSITE_INFOW
- {
- LPWSTR pszCountry; // Country code
- NAME_INFOW objServer; // Name information for server
- NAME_INFOW objSite; // Name information for site containing server
- NAME_INFOW objEnterprise; // Name information for enterprise containing server
- } SITE_INFOW, *PSITE_INFOW;
-
- #ifdef UNICODE
- typedef NAME_INFOW NAME_INFO;
- typedef PNAME_INFOW PNAME_INFO;
- typedef SITE_INFOW SITE_INFO;
- typedef PSITE_INFOW PSITE_INFO;
- #else
- typedef NAME_INFOA NAME_INFO;
- typedef PNAME_INFOA PNAME_INFO;
- typedef SITE_INFOA SITE_INFO;
- typedef PSITE_INFOA PSITE_INFO;
- #endif
-
- extern PDAPI_EVENTA APIENTRY DAPIGetSiteInfoA (
- DWORD dwFlags, // Flags for request
- LPSTR pszDSA, // name of DSA from which to get information
- PSITE_INFOA * ppSiteInfo // Address receiving pointer to pSiteInfo structure
- // containing return data
- );
-
- extern PDAPI_EVENTW APIENTRY DAPIGetSiteInfoW (
- DWORD dwFlags, // Flags for request
- LPWSTR pszDSA, // name of DSA from which to get information
- PSITE_INFOW * ppSiteInfo // Address receiving pointer to pSiteInfo structure
- // containing return dataname of DSA from which to read schema
- );
-
- #ifdef UNICODE
- #define DAPIGetSiteInfo DAPIGetSiteInfoW
- #else
- #define DAPIGetSiteInfo DAPIGetSiteInfoA
- #endif
-
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // _DAPI_INCLUDED
- #pragma option pop /*P_O_Pop*/
-