📄 dapi.h
字号:
*
* 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -