diff options
Diffstat (limited to 'private/nw/inc/nwapi32.h')
-rw-r--r-- | private/nw/inc/nwapi32.h | 810 |
1 files changed, 810 insertions, 0 deletions
diff --git a/private/nw/inc/nwapi32.h b/private/nw/inc/nwapi32.h new file mode 100644 index 000000000..d31dbfc81 --- /dev/null +++ b/private/nw/inc/nwapi32.h @@ -0,0 +1,810 @@ +////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 1993 Microsoft Corporation +// +// Module Name: +// +// nwapi32.h +// +// Abstract: +// +// This module contains the support for calls into CSNW. +// +// Author: +// +// Chris Sandys (a-chrisa) 09-Sep-1993 +// +// Revision History: +// Chuck Y Chan Feb 3, 1994 Make it NT like +// Chuck Y Chan Feb 4, 1996 Merged in calls used by DSMN (from +// nwcapi32.h) +// +////////////////////////////////////////////////////////////////////////////// + + +#ifndef _NWAPI32_H_ +#define _NWAPI32_H_ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +// +// Order of Funtions +// +// NWAddTrusteeToDirectory +// NWAllocTemporaryDirectoryHandle +// NWAllocPermanentDirectoryHandle +// NWAttachToFileServer +// NWCheckConsolePrivileges +// NWDeallocateDirectoryHandle +// NWDetachFromFileServer +// NWGetFileServerVersionInfo +// NWGetInternetAddress +// NWGetObjectName +// NWGetVolumeInfoWithHandle +// NWGetVolumeInfoWithNumber +// NWGetVolumeName +// NWIsObjectInSet +// NWLoginToFileServer +// NWLogoutFromFileServer +// NWReadPropertyValue +// NWScanObject +// NWScanProperty + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Manifests and structures // +// // +/////////////////////////////////////////////////////////////////////////////// + +// +// Version Structure +// +#include <packon.h> + +typedef struct _VERSION_INFO { + BYTE szName[48]; + BYTE Version; + BYTE SubVersion; + WORD ConnsSupported; + WORD connsInUse; + WORD maxVolumes; + BYTE OSRev; + BYTE SFTLevel; + BYTE TTSLevel; + WORD PeakConns; + BYTE AcctVer; + BYTE VAPVer; + BYTE QueueVer; + BYTE PrintVer; + BYTE VirtualConsoleVer; + BYTE SecurityResLevel; + BYTE InternetworkBVer; + BYTE Reserved[60]; +} VERSION_INFO; + +#include <packoff.h> + +// +// DLL Defination +// +#define DLLEXPORT + +// +// Misc type definitions +// +#define NWCCODE USHORT +#define NWLOCAL_SCOPE USHORT +#define NWCONN_HANDLE HANDLE +#define NWFAR +#define NWAPI WINAPI +#define NWOBJ_TYPE USHORT +#define NWOBJ_ID DWORD +#define NWFLAGS UCHAR +#define NWVOL_NUM UCHAR +#define NWDIR_HANDLE UCHAR +#define NWACCESS_RIGHTS BYTE +#define NWCONN_NUM USHORT +#define NWNET_ADDR UCHAR +#define NWNUMBER WORD +#define NWVOL_FLAGS WORD +#define NWSEGMENT_NUM UCHAR +#define NWSEGMENT_DATA BYTE +#define NWRIGHTS_MASK WORD +#define NWSEQUENCE BYTE +#define NWINDEX_TYPE USHORT +#define NWDATE_TIME DWORD +#define NWDIR_TRUSTEE_RIGHTS WORD +#define NWSEQUENCE BYTE + +typedef struct { + NWOBJ_ID objectID; + NWDIR_TRUSTEE_RIGHTS objectRights; +} TRUSTEE_INFO; + +// +// Object Types (already in HI-LO format) +// +#define OT_WILD 0xFFFF +#define OT_UNKNOWN 0x0000 +#define OT_USER 0x0100 +#define OT_USER_GROUP 0x0200 +#define OT_PRINT_QUEUE 0x0300 +#define OT_FILE_SERVER 0x0400 +#define OT_JOB_SERVER 0x0500 +#define OT_GATEWAY 0x0600 +#define OT_PRINT_SERVER 0x0700 +#define OT_ARCHIVE_QUEUE 0x0800 +#define OT_ARCHIVE_SERVER 0x0900 +#define OT_JOB_QUEUE 0x0A00 +#define OT_ADMINISTRATION 0x0B00 +#define OT_NAS_SNA_GATEWAY 0x2100 +#define OT_REMOTE_BRIDGE_SERVER 0x2600 +#define OT_TCPIP_GATEWAY 0x2700 +#define OT_DIRSERVER 0x7802 + +// +// Bindery object property flag +// +#define BF_STATIC 0x00 +#define BF_DYNAMIC 0x01 +#define BF_ITEM 0x00 +#define BF_SET 0x02 + +// +// Bindery object security flag +// +#define BS_ANY_READ 0x00 +#define BS_LOGGED_READ 0x01 +#define BS_OBJECT_READ 0x02 +#define BS_SUPER_READ 0x03 +#define BS_BINDERY_READ 0x04 +#define BS_ANY_WRITE 0x00 +#define BS_LOGGED_WRITE 0x10 +#define BS_OBJECT_WRITE 0x20 +#define BS_SUPER_WRITE 0x30 +#define BS_BINDERY_WRITE 0x40 + +// +// Size Of Things +// +#define OBJ_NAME_SIZE 48 // ScanObject name size +#define VOL_NAME_SIZE 16 // Get Volume Name Size +#define NW_USER_SIZE 50 +#define NW_GROUP_SIZE 50 +#define NW_PROP_SIZE 50 +#define NW_DATA_SIZE 128 +#define NW_PROP_SET 0x02 + +// +// Return Codes +// +#define UNSUCCESSFUL -1 +#define SUCCESSFUL 0x0000 +#define REQUESTER_ERROR 0x8800 + +#define ALREADY_ATTACHED 0x8800 +#define INVALID_CONNECTION 0x8801 +#define NO_CONSOLE_RIGHTS 0x89C6 +#define SERVER_OUT_OF_MEMORY 0x8996 +#define VOLUME_DOES_NOT_EXIST 0x8998 +#define BAD_DIRECTORY_HANDLE 0x899B +#define INVALID_PATH 0x899C +#define OBJECT_ALREADY_EXISTS 0x89EE +#define NO_OBJECT_READ_PRIVILEGE 0x89FB +#define NO_SUCH_PROPERTY 0x89FB +#define UNKNOWN_FILE_SERVER 0x89FC +#define NO_SUCH_OBJECT 0x89FC +#define NO_FILES_FOUND_ERROR 0x89FF + +// +// Swap MACROS +// +#define wSWAP(x) (USHORT)(((((USHORT)x)<<8)&0xFF00) | ((((USHORT)x)>>8)&0x00FF)) +#define dwSWAP(x) (DWORD)( ((((DWORD)x)<<24)&0xFF000000) | ((((DWORD)x)<<8)&0x00FF0000) | ((((DWORD)x)>>8)&0x0000FF00) | ((((DWORD)x)>>24)&0x000000FF) ) + +#define DW_SIZE 4 // used for placing RAW bytes +#define W_SIZE 2 + + +/////////////////////////////////////////////////////////////////////////////// +// // +// Original functions from Chris Sandys. Keep for compatibility. // +// // +/////////////////////////////////////////////////////////////////////////////// + +NWCCODE NWAPI DLLEXPORT +NWAddTrusteeToDirectory( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char NWFAR *pszPath, + NWOBJ_ID dwTrusteeID, + NWACCESS_RIGHTS rightsMask + ); + +NWCCODE NWAPI DLLEXPORT +NWAllocPermanentDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char NWFAR *pszDirPath, + NWDIR_HANDLE NWFAR *pbNewDirHandle, + NWACCESS_RIGHTS NWFAR *pbRightsMask + ); + +NWCCODE NWAPI DLLEXPORT +NWAllocTemporaryDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char NWFAR *pszDirPath, + NWDIR_HANDLE NWFAR *pbNewDirHandle, + NWACCESS_RIGHTS NWFAR *pbRightsMask + ); + +NWCCODE NWAPI DLLEXPORT +NWAttachToFileServer( + const char NWFAR *pszServerName, + NWLOCAL_SCOPE ScopeFlag, + NWCONN_HANDLE NWFAR *phNewConn + ); + +NWCCODE NWAPI DLLEXPORT +NWAttachToFileServerW( + const WCHAR NWFAR *pszServerName, + NWLOCAL_SCOPE ScopeFlag, + NWCONN_HANDLE NWFAR *phNewConn + ); + +NWCCODE NWAPI DLLEXPORT +NWCheckConsolePrivileges( + NWCONN_HANDLE hConn + ); + +NWCCODE NWAPI DLLEXPORT +NWDeallocateDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle + ); + +NWCCODE NWAPI DLLEXPORT +NWDetachFromFileServer( + NWCONN_HANDLE hConn + ); + +NWCCODE NWAPI DLLEXPORT +NWGetFileServerVersionInfo( + NWCONN_HANDLE hConn, + VERSION_INFO NWFAR *lpVerInfo + ); + +NWCCODE NWAPI DLLEXPORT +NWGetInternetAddress( + NWCONN_HANDLE hConn, + NWCONN_NUM nConnNum, + NWNET_ADDR NWFAR *pIntAddr + ); + +NWCCODE NWAPI DLLEXPORT +NWGetObjectName( + NWCONN_HANDLE hConn, + NWOBJ_ID dwObjectID, + char NWFAR *pszObjName, + NWOBJ_TYPE NWFAR *pwObjType + ); + +NWCCODE NWAPI DLLEXPORT +NWGetVolumeInfoWithHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE nDirHand, + char NWFAR *pszVolName, + NWNUMBER NWFAR *pwTotalBlocks, + NWNUMBER NWFAR *pwSectors, + NWNUMBER NWFAR *pwAvailBlocks, + NWNUMBER NWFAR *pwTotalDir, + NWNUMBER NWFAR *pwAvailDir, + NWVOL_FLAGS NWFAR *pfVolRemovable + ); + +NWCCODE NWAPI DLLEXPORT +NWGetVolumeInfoWithNumber( + NWCONN_HANDLE hConn, + NWVOL_NUM nVolNum, + char NWFAR *pszVolName, + NWNUMBER NWFAR *pwTotalBlocks, + NWNUMBER NWFAR *pwSectors, + NWNUMBER NWFAR *pwAvailBlocks, + NWNUMBER NWFAR *pwTotalDir, + NWNUMBER NWFAR *pwAvailDir, + NWVOL_FLAGS NWFAR *pfVolRemovable + ); + +NWCCODE NWAPI DLLEXPORT +NWGetVolumeName( + NWCONN_HANDLE hConn, + NWVOL_NUM bVolNum, + char NWFAR *pszVolName + ); + +NWCCODE NWAPI DLLEXPORT /* ??? */ +NWLoginToFileServer( + NWCONN_HANDLE hConn, + const char NWFAR *pszUserName, + NWOBJ_TYPE wObType, + const char NWFAR *pszPassword + ); + +NWCCODE NWAPI DLLEXPORT /* ??? */ +NWLogoutFromFileServer( + NWCONN_HANDLE hConn + ); + +NWCCODE NWAPI DLLEXPORT /* ??? */ +NWReadPropertyValue( + NWCONN_HANDLE hConn, + const char NWFAR *pszObjName, + NWOBJ_TYPE wObjType, + char NWFAR *pszPropName, + unsigned char ucSegment, + char NWFAR *pValue, + NWFLAGS NWFAR *pucMoreFlag, + NWFLAGS NWFAR *pucPropFlag + ); + + +NWCCODE NWAPI DLLEXPORT +NWScanObject( + NWCONN_HANDLE hConn, + const char NWFAR *pszSearchName, + NWOBJ_TYPE wObjSearchType, + NWOBJ_ID NWFAR *pdwObjectID, + char NWFAR *pszObjectName, + NWOBJ_TYPE NWFAR *pwObjType, + NWFLAGS NWFAR *pucHasProperties, + NWFLAGS NWFAR *pucObjectFlags, + NWFLAGS NWFAR *pucObjSecurity + ); + +NWCCODE NWAPI DLLEXPORT +NWScanProperty( + NWCONN_HANDLE hConn, + const char NWFAR *pszObjectName, + NWOBJ_TYPE wObjType, + char NWFAR *pszSearchName, + NWOBJ_ID NWFAR *pdwSequence, + char NWFAR *pszPropName, + NWFLAGS NWFAR *pucPropFlags, + NWFLAGS NWFAR *pucPropSecurity, + NWFLAGS NWFAR *pucHasValue, + NWFLAGS NWFAR *pucMore + ); + +NWCCODE NWAPI DLLEXPORT +NWIsObjectInSet( + NWCONN_HANDLE hConn, + const char NWFAR *lpszObjectName, + NWOBJ_TYPE wObjType, + const char NWFAR *lpszPropertyName, + const char NWFAR *lpszMemberName, + NWOBJ_TYPE wMemberType + ); + +NWCCODE NWAPI DLLEXPORT +NWGetFileServerDateAndTime( + NWCONN_HANDLE hConn, + BYTE NWFAR *year, + BYTE NWFAR *month, + BYTE NWFAR *day, + BYTE NWFAR *hour, + BYTE NWFAR *minute, + BYTE NWFAR *second, + BYTE NWFAR *dayofweek + ); + +NWCCODE NWAPI DLLEXPORT +NWCreateQueue( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char NWFAR *pszQueueName, + NWOBJ_TYPE wQueueType, + const char NWFAR *pszPathName, + NWOBJ_ID NWFAR *pdwQueueId + ); + +NWCCODE NWAPI DLLEXPORT +NWChangePropertySecurity( + NWCONN_HANDLE hConn, + const char NWFAR *pszObjName, + NWOBJ_TYPE wObjType, + const char NWFAR *pszPropertyName, + NWFLAGS ucObjSecurity + ); + +NWCCODE NWAPI DLLEXPORT +NWDestroyQueue( + NWCONN_HANDLE hConn, + NWOBJ_ID dwQueueId + ); + +/////////////////////////////////////////////////////////////////////////////// +// // +// Newer and more complete NWC functions. // +// // +// These functions return NetWare compatible error codes. Win32 error may // +// be obtained by calling GetLastError(). // +// // +/////////////////////////////////////////////////////////////////////////////// + + +NWCCODE +NWCAddTrusteeToDirectory( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char *pszPath, + NWOBJ_ID dwTrusteeID, + NWACCESS_RIGHTS rightsMask + ); + +NWCCODE +NWCAllocPermanentDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char *pszDirPath, + NWDIR_HANDLE *pbNewDirHandle, + NWACCESS_RIGHTS *pbRightsMask + ); + +NWCCODE +NWCAllocTemporaryDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char *pszDirPath, + NWDIR_HANDLE *pbNewDirHandle, + NWACCESS_RIGHTS *pbRightsMask + ); + +NWCCODE +NWCAttachToFileServer( + const char *pszServerName, + NWLOCAL_SCOPE ScopeFlag, + NWCONN_HANDLE *phNewConn + ); + +NWCCODE +NWCAttachToFileServerW( + const WCHAR *pszServerName, + NWLOCAL_SCOPE ScopeFlag, + NWCONN_HANDLE *phNewConn + ); + +NWCCODE +NWCCheckConsolePrivileges( + NWCONN_HANDLE hConn + ); + +NWCCODE +NWCDeallocateDirectoryHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle + ); + +NWCCODE +NWCDetachFromFileServer( + NWCONN_HANDLE hConn + ); + +NWCCODE +NWCGetFileServerVersionInfo( + NWCONN_HANDLE hConn, + VERSION_INFO *lpVerInfo + ); + +NWCCODE +NWCGetInternetAddress( + NWCONN_HANDLE hConn, + NWCONN_NUM nConnNum, + NWNET_ADDR *pIntAddr + ); + +NWCCODE +NWCGetObjectName( + NWCONN_HANDLE hConn, + NWOBJ_ID dwObjectID, + char *pszObjName, + NWOBJ_TYPE *pwObjType + ); + +NWCCODE +NWCGetVolumeInfoWithHandle( + NWCONN_HANDLE hConn, + NWDIR_HANDLE nDirHand, + char *pszVolName, + NWNUMBER *pwTotalBlocks, + NWNUMBER *pwSectors, + NWNUMBER *pwAvailBlocks, + NWNUMBER *pwTotalDir, + NWNUMBER *pwAvailDir, + NWVOL_FLAGS *pfVolRemovable + ); + +NWCCODE +NWCGetVolumeInfoWithNumber( + NWCONN_HANDLE hConn, + NWVOL_NUM nVolNum, + char *pszVolName, + NWNUMBER *pwTotalBlocks, + NWNUMBER *pwSectors, + NWNUMBER *pwAvailBlocks, + NWNUMBER *pwTotalDir, + NWNUMBER *pwAvailDir, + NWVOL_FLAGS *pfVolRemovable + ); + +NWCCODE +NWCGetVolumeName( + NWCONN_HANDLE hConn, + NWVOL_NUM bVolNum, + char *pszVolName + ); + +NWCCODE +NWCLoginToFileServer( + NWCONN_HANDLE hConn, + const char *pszUserName, + NWOBJ_TYPE wObType, + const char *pszPassword + ); + +NWCCODE +NWCLogoutFromFileServer( + NWCONN_HANDLE hConn + ); + +NWCCODE +NWCReadPropertyValue( + NWCONN_HANDLE hConn, + const char *pszObjName, + NWOBJ_TYPE wObjType, + char *pszPropName, + unsigned char ucSegment, + char *pValue, + NWFLAGS *pucMoreFlag, + NWFLAGS *pucPropFlag + ); + + +NWCCODE +NWCScanObject( + NWCONN_HANDLE hConn, + const char *pszSearchName, + NWOBJ_TYPE wObjSearchType, + NWOBJ_ID *pdwObjectID, + char *pszObjectName, + NWOBJ_TYPE *pwObjType, + NWFLAGS *pucHasProperties, + NWFLAGS *pucObjectFlags, + NWFLAGS *pucObjSecurity + ); + +NWCCODE +NWCScanProperty( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + char *pszSearchName, + NWOBJ_ID *pdwSequence, + char *pszPropName, + NWFLAGS *pucPropFlags, + NWFLAGS *pucPropSecurity, + NWFLAGS *pucHasValue, + NWFLAGS *pucMore + ); + +NWCCODE +NWCIsObjectInSet( + NWCONN_HANDLE hConn, + const char *lpszObjectName, + NWOBJ_TYPE wObjType, + const char *lpszPropertyName, + const char *lpszMemberName, + NWOBJ_TYPE wMemberType + ); + +NWCCODE +NWCGetFileServerDateAndTime( + NWCONN_HANDLE hConn, + BYTE *year, + BYTE *month, + BYTE *day, + BYTE *hour, + BYTE *minute, + BYTE *second, + BYTE *dayofweek + ); + +NWCCODE +NWCAddTrustee( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char *pszPath, + NWOBJ_ID dwTrusteeID, + NWRIGHTS_MASK rightsMask + ); + +NWCCODE +NWCDeleteObject( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType + ); + +NWCCODE +NWCCreateObject( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + NWFLAGS ucObjectFlags, + NWFLAGS ucObjSecurity + ); + +NWCCODE +NWCCreateProperty( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + const char *pszPropertyName, + NWFLAGS ucObjectFlags, + NWFLAGS ucObjSecurity + ); + +NWCCODE +NWCDeleteProperty( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + const char *pszPropertyName + ); + +NWCCODE +NWCWritePropertyValue( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + const char *pszPropertyName, + NWSEGMENT_NUM segmentNumber, + NWSEGMENT_DATA *segmentData, + NWFLAGS moreSegments + ); + +NWCCODE +NWCGetObjectID( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + NWOBJ_ID *objectID + ); + +NWCCODE +NWCRenameBinderyObject( + NWCONN_HANDLE hConn, + const char *pszObjectName, + const char *pszNewObjectName, + NWOBJ_TYPE wObjType + ); + +NWCCODE +NWCAddObjectToSet( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + const char *pszPropertyName, + const char *pszMemberName, + NWOBJ_TYPE memberType + ); + +NWCCODE +NWCDeleteObjectFromSet( + NWCONN_HANDLE hConn, + const char *pszObjectName, + NWOBJ_TYPE wObjType, + const char *pszPropertyName, + const char *pszMemberName, + NWOBJ_TYPE memberType + ); + +NWCCODE +NWCCreateDirectory( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char *pszPath, + NWACCESS_RIGHTS accessMask + ); + +NWCCODE +NWCScanForTrustees( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char *pszsearchDirPath, + NWSEQUENCE *pucsequenceNumber, + BYTE *numberOfEntries, + TRUSTEE_INFO *tl + ); + +NWCCODE +NWCScanDirectoryForTrustees2( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + char *pszsearchDirPath, + NWSEQUENCE *pucsequenceNumber, + char *pszdirName, + NWDATE_TIME *dirDateTime, + NWOBJ_ID *ownerID, + TRUSTEE_INFO *trusteeList + ); + +NWCCODE +NWCGetBinderyAccessLevel( + NWCONN_HANDLE hConn, + NWFLAGS *accessLevel, + NWOBJ_ID *objectID + ); + +NWCCODE +NWCGetFileServerDescription( + NWCONN_HANDLE hConn, + char *pszCompany, + char *pszVersion, + char *pszRevision +); + +NWCCODE +NWCGetVolumeNumber( + NWCONN_HANDLE hConn, + char *pszVolume, + NWVOL_NUM *VolumeNumber +); + +NWCCODE +NWCGetVolumeUsage( + NWCONN_HANDLE hConn, + NWVOL_NUM VolumeNumber, + DWORD *TotalBlocks, + DWORD *FreeBlocks, + DWORD *PurgeableBlocks, + DWORD *NotYetPurgeableBlocks, + DWORD *TotalDirectoryEntries, + DWORD *AvailableDirectoryEntries, + BYTE *SectorsPerBlock +); + +NWCCODE +NWCCreateQueue( + NWCONN_HANDLE hConn, + NWDIR_HANDLE dirHandle, + const char NWFAR *pszQueueName, + NWOBJ_TYPE wQueueType, + const char NWFAR *pszPathName, + NWOBJ_ID NWFAR *pdwQueueId + ); + +NWCCODE +NWCChangePropertySecurity( + NWCONN_HANDLE hConn, + const char NWFAR *pszObjName, + NWOBJ_TYPE wObjType, + const char NWFAR *pszPropertyName, + NWFLAGS ucObjSecurity + ); + +NWCCODE +NWCDestroyQueue( + NWCONN_HANDLE hConn, + NWOBJ_ID dwQueueId + ); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif //_NWAPI32_H_ |