NDdeAPI.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:14k
- /************************************************************************
- * Copyright (c) Wonderware Software Development Corp. 1991-1993. *
- * All Rights Reserved. *
- * Copyright (c) Microsoft Inc. 1995-1999 *
- * All Rights Reserved. *
- ************************************************************************/
- #ifndef _INC_NDDEAPI
- #define _INC_NDDEAPI
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #include <pshpack1.h> /* Assume byte packing throughout */
- #ifdef __cplusplus
- extern "C" { /* Assume C declarations for C++ */
- #endif /* __cplusplus */
- #ifndef CNLEN /* If not included with netapi header */
- #define CNLEN 15 /* Computer name length */
- #define UNCLEN (CNLEN+2) /* UNC computer name length */
- #endif /* CNLEN */
- // the choice of this char affects legal share,topic, etc. names
- #define SEP_CHAR ','
- #define BAR_CHAR "|"
- #define SEP_WCHAR L','
- #define BAR_WCHAR L"|"
- /* API error codes */
- #define NDDE_NO_ERROR 0
- #define NDDE_ACCESS_DENIED 1
- #define NDDE_BUF_TOO_SMALL 2
- #define NDDE_ERROR_MORE_DATA 3
- #define NDDE_INVALID_SERVER 4
- #define NDDE_INVALID_SHARE 5
- #define NDDE_INVALID_PARAMETER 6
- #define NDDE_INVALID_LEVEL 7
- #define NDDE_INVALID_PASSWORD 8
- #define NDDE_INVALID_ITEMNAME 9
- #define NDDE_INVALID_TOPIC 10
- #define NDDE_INTERNAL_ERROR 11
- #define NDDE_OUT_OF_MEMORY 12
- #define NDDE_INVALID_APPNAME 13
- #define NDDE_NOT_IMPLEMENTED 14
- #define NDDE_SHARE_ALREADY_EXIST 15
- #define NDDE_SHARE_NOT_EXIST 16
- #define NDDE_INVALID_FILENAME 17
- #define NDDE_NOT_RUNNING 18
- #define NDDE_INVALID_WINDOW 19
- #define NDDE_INVALID_SESSION 20
- #define NDDE_INVALID_ITEM_LIST 21
- #define NDDE_SHARE_DATA_CORRUPTED 22
- #define NDDE_REGISTRY_ERROR 23
- #define NDDE_CANT_ACCESS_SERVER 24
- #define NDDE_INVALID_SPECIAL_COMMAND 25
- #define NDDE_INVALID_SECURITY_DESC 26
- #define NDDE_TRUST_SHARE_FAIL 27
- /* string size constants */
- #define MAX_NDDESHARENAME 256
- #define MAX_DOMAINNAME 15
- #define MAX_USERNAME 15
- #define MAX_APPNAME 255
- #define MAX_TOPICNAME 255
- #define MAX_ITEMNAME 255
- /* connectFlags bits for ndde service affix */
- #define NDDEF_NOPASSWORDPROMPT 0x0001
- #define NDDEF_NOCACHELOOKUP 0x0002
- #define NDDEF_STRIP_NDDE 0x0004
- /* NDDESHAREINFO - contains information about a NDDE share */
- struct NDdeShareInfo_tag {
- LONG lRevision;
- LPTSTR lpszShareName;
- LONG lShareType;
- LPTSTR lpszAppTopicList;
- LONG fSharedFlag;
- LONG fService;
- LONG fStartAppFlag;
- LONG nCmdShow;
- LONG qModifyId[2];
- LONG cNumItems;
- LPTSTR lpszItemList;
- };
- typedef struct NDdeShareInfo_tag NDDESHAREINFO;
- typedef struct NDdeShareInfo_tag * PNDDESHAREINFO;
- /* Share Types */
- #define SHARE_TYPE_OLD 0x01 // Excel|sheet1.xls
- #define SHARE_TYPE_NEW 0x02 // ExcelWorksheet|sheet1.xls
- #define SHARE_TYPE_STATIC 0x04 // ClipSrv|SalesData
- /*
- Add new share
- */
- UINT WINAPI
- NDdeShareAddA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- UINT nLevel, // info level must be 2
- PSECURITY_DESCRIPTOR pSD, // initial security descriptor (optional)
- LPBYTE lpBuffer, // contains (NDDESHAREINFO) + data
- DWORD cBufSize // sizeof supplied buffer
- );
- UINT WINAPI
- NDdeShareAddW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- UINT nLevel, // info level must be 2
- PSECURITY_DESCRIPTOR pSD, // initial security descriptor (optional)
- LPBYTE lpBuffer, // contains (NDDESHAREINFO) + data
- DWORD cBufSize // sizeof supplied buffer
- );
- /*
- Delete a share
- */
- UINT WINAPI
- NDdeShareDelA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share to delete
- UINT wReserved // reserved for force level (?) 0 for now
- );
- UINT WINAPI
- NDdeShareDelW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share to delete
- UINT wReserved // reserved for force level (?) 0 for now
- );
- /*
- Get Share Security Descriptor
- */
- UINT WINAPI
- NDdeGetShareSecurityA(
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share to delete
- SECURITY_INFORMATION si, // requested information
- PSECURITY_DESCRIPTOR pSD, // address of security descriptor
- DWORD cbSD, // size of buffer for security descriptor
- LPDWORD lpcbsdRequired // address of required size of buffer
- );
- UINT WINAPI
- NDdeGetShareSecurityW(
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share to delete
- SECURITY_INFORMATION si, // requested information
- PSECURITY_DESCRIPTOR pSD, // address of security descriptor
- DWORD cbSD, // size of buffer for security descriptor
- LPDWORD lpcbsdRequired // address of required size of buffer
- );
- /*
- Set Share Security Descriptor
- */
- UINT WINAPI
- NDdeSetShareSecurityA(
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share to delete
- SECURITY_INFORMATION si, // type of information to set
- PSECURITY_DESCRIPTOR pSD // address of security descriptor
- );
- UINT WINAPI
- NDdeSetShareSecurityW(
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share to delete
- SECURITY_INFORMATION si, // type of information to set
- PSECURITY_DESCRIPTOR pSD // address of security descriptor
- );
- /*
- Enumerate shares
- */
- UINT WINAPI
- NDdeShareEnumA (
- LPSTR lpszServer, // server to execute on ( NULL for local )
- UINT nLevel, // 0 for null separated 00 terminated list
- LPBYTE lpBuffer, // pointer to buffer
- DWORD cBufSize, // size of buffer
- LPDWORD lpnEntriesRead, // number of names returned
- LPDWORD lpcbTotalAvailable // number of bytes available
- );
- UINT WINAPI
- NDdeShareEnumW (
- LPWSTR lpszServer, // server to execute on ( NULL for local )
- UINT nLevel, // 0 for null separated 00 terminated list
- LPBYTE lpBuffer, // pointer to buffer
- DWORD cBufSize, // size of buffer
- LPDWORD lpnEntriesRead, // number of names returned
- LPDWORD lpcbTotalAvailable // number of bytes available
- );
- /*
- Get information on a share
- */
- UINT WINAPI
- NDdeShareGetInfoA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share
- UINT nLevel, // info level must be 2
- LPBYTE lpBuffer, // gets struct containing (NDDESHAREINFO) + data
- DWORD cBufSize, // sizeof buffer
- LPDWORD lpnTotalAvailable, // number of bytes available
- LPWORD lpnItems // item mask for partial getinfo (must be 0)
- );
- UINT WINAPI
- NDdeShareGetInfoW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share
- UINT nLevel, // info level must be 2
- LPBYTE lpBuffer, // gets struct containing (NDDESHAREINFO) + data
- DWORD cBufSize, // sizeof buffer
- LPDWORD lpnTotalAvailable, // number of bytes available
- LPWORD lpnItems // item mask for partial getinfo (must be 0)
- );
- /*
- Modify DDE share data
- */
- UINT WINAPI
- NDdeShareSetInfoA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share
- UINT nLevel, // info level must be 2
- LPBYTE lpBuffer, // points to struct with (NDDESHAREINFO) + data
- DWORD cBufSize, // sizeof buffer
- WORD sParmNum // Parameter index ( must be 0 - entire )
- );
- UINT WINAPI
- NDdeShareSetInfoW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share
- UINT nLevel, // info level must be 2
- LPBYTE lpBuffer, // points to struct with (NDDESHAREINFO) + data
- DWORD cBufSize, // sizeof buffer
- WORD sParmNum // Parameter index ( must be 0 - entire )
- );
- /*
- Set/Create a trusted share
- */
- UINT WINAPI
- NDdeSetTrustedShareA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share to delete
- DWORD dwTrustOptions // trust options to apply
- );
- UINT WINAPI
- NDdeSetTrustedShareW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share to delete
- DWORD dwTrustOptions // trust options to apply
- );
- /* Trusted share options */
- #define NDDE_TRUST_SHARE_START 0x80000000L // Start App Allowed
- #define NDDE_TRUST_SHARE_INIT 0x40000000L // Init Conv Allowed
- #define NDDE_TRUST_SHARE_DEL 0x20000000L // Delete Trusted Share (on set)
- #define NDDE_TRUST_CMD_SHOW 0x10000000L // Use supplied cmd show
- #define NDDE_CMD_SHOW_MASK 0x0000FFFFL // Command Show mask
- /*
- Get a trusted share options
- */
- UINT WINAPI
- NDdeGetTrustedShareA (
- LPSTR lpszServer, // server to execute on ( must be NULL )
- LPSTR lpszShareName, // name of share to query
- LPDWORD lpdwTrustOptions, // trust options in effect
- LPDWORD lpdwShareModId0, // first word of share mod id
- LPDWORD lpdwShareModId1 // second word of share mod id
- );
- UINT WINAPI
- NDdeGetTrustedShareW (
- LPWSTR lpszServer, // server to execute on ( must be NULL )
- LPWSTR lpszShareName, // name of share to query
- LPDWORD lpdwTrustOptions, // trust options in effect
- LPDWORD lpdwShareModId0, // first word of share mod id
- LPDWORD lpdwShareModId1 // second word of share mod id
- );
- /*
- Enumerate trusted shares
- */
- UINT WINAPI
- NDdeTrustedShareEnumA (
- LPSTR lpszServer, // server to execute on ( NULL for local )
- UINT nLevel, // 0 for null separated 00 terminated list
- LPBYTE lpBuffer, // pointer to buffer
- DWORD cBufSize, // size of buffer
- LPDWORD lpnEntriesRead, // number of names returned
- LPDWORD lpcbTotalAvailable // number of bytes available
- );
- UINT WINAPI
- NDdeTrustedShareEnumW (
- LPWSTR lpszServer, // server to execute on ( NULL for local )
- UINT nLevel, // 0 for null separated 00 terminated list
- LPBYTE lpBuffer, // pointer to buffer
- DWORD cBufSize, // size of buffer
- LPDWORD lpnEntriesRead, // number of names returned
- LPDWORD lpcbTotalAvailable // number of bytes available
- );
- /*
- Convert error code to string value
- */
- UINT WINAPI
- NDdeGetErrorStringA (
- UINT uErrorCode, // Error code to get string for
- LPSTR lpszErrorString, // buffer to hold error string
- DWORD cBufSize // sizeof buffer
- );
- UINT WINAPI
- NDdeGetErrorStringW (
- UINT uErrorCode, // Error code to get string for
- LPWSTR lpszErrorString, // buffer to hold error string
- DWORD cBufSize // sizeof buffer
- );
- /*
- Validate share name format
- */
- BOOL WINAPI
- NDdeIsValidShareNameA (
- LPSTR shareName
- );
- BOOL WINAPI
- NDdeIsValidShareNameW (
- LPWSTR shareName
- );
- /*
- Validate application/topic list format
- */
- BOOL WINAPI
- NDdeIsValidAppTopicListA (
- LPSTR targetTopic
- );
- BOOL WINAPI
- NDdeIsValidAppTopicListW (
- LPWSTR targetTopic
- );
- #ifdef UNICODE
- #define NDdeShareAdd NDdeShareAddW
- #define NDdeShareDel NDdeShareDelW
- #define NDdeSetShareSecurity NDdeSetShareSecurityW
- #define NDdeGetShareSecurity NDdeGetShareSecurityW
- #define NDdeShareEnum NDdeShareEnumW
- #define NDdeShareGetInfo NDdeShareGetInfoW
- #define NDdeShareSetInfo NDdeShareSetInfoW
- #define NDdeGetErrorString NDdeGetErrorStringW
- #define NDdeIsValidShareName NDdeIsValidShareNameW
- #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListW
- #define NDdeSetTrustedShare NDdeSetTrustedShareW
- #define NDdeGetTrustedShare NDdeGetTrustedShareW
- #define NDdeTrustedShareEnum NDdeTrustedShareEnumW
- #else
- #define NDdeShareAdd NDdeShareAddA
- #define NDdeShareDel NDdeShareDelA
- #define NDdeSetShareSecurity NDdeSetShareSecurityA
- #define NDdeGetShareSecurity NDdeGetShareSecurityA
- #define NDdeShareEnum NDdeShareEnumA
- #define NDdeShareGetInfo NDdeShareGetInfoA
- #define NDdeShareSetInfo NDdeShareSetInfoA
- #define NDdeGetErrorString NDdeGetErrorStringA
- #define NDdeIsValidShareName NDdeIsValidShareNameA
- #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListA
- #define NDdeSetTrustedShare NDdeSetTrustedShareA
- #define NDdeGetTrustedShare NDdeGetTrustedShareA
- #define NDdeTrustedShareEnum NDdeTrustedShareEnumA
- #endif
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #include <poppack.h>
- #endif /* _INC_NDDEAPI */