home *** CD-ROM | disk | FTP | other *** search
- /* $Header: "%n;%v %f LastEdit=%w Locker=%l" */
- /* "" */
- /************************************************************************
- * Copyright (c) Wonderware Software Development Corp. 1991-1993. *
- * All Rights Reserved. *
- *************************************************************************/
- /* $History: Begin
-
- nddeapi.h
-
- Network DDE share and trusted share access and control function
- prototypes, structures and definitions.
-
- NOTE: windows.h must be #included first
-
- Revisions:
- 1.00 12/92 PhilH Wonderware port from WFW to NT.
- 1.01 3/92 IgorM Wonderware addition of separate SD access API
- and trusted share access API.
-
- $History: End */
-
-
- #ifndef __NDDEAPI_H
- #define __NDDEAPI_H
-
- #ifndef RC_INVOKED
- #pragma pack(1) /* Assume byte packing throughout */
- #endif /* !RC_INVOKED */
-
- #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_USERNAME 15
- #define MAX_DOMAINNAME 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
- );
-
- UINT WINAPI
- NDdeSpecialCommandA(
- LPSTR lpszServer,
- UINT nCommand,
- LPBYTE lpDataIn,
- UINT nBytesDataIn,
- LPBYTE lpDataOut,
- UINT *lpBytesDataOut
- );
-
- UINT WINAPI
- NDdeSpecialCommandW(
- LPWSTR lpszServer,
- UINT nCommand,
- LPBYTE lpDataIn,
- UINT nBytesDataIn,
- LPBYTE lpDataOut,
- UINT *lpBytesDataOut
- );
-
- #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
- #define NDdeSpecialCommand NDdeSpecialCommandW
- #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
- #define NDdeSpecialCommand NDdeSpecialCommandA
- #endif
-
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
-
- #ifndef RC_INVOKED
- #pragma pack()
- #endif /* !RC_INVOKED */
-
- #endif /* __NDDEAPI_H */
-