365 lines
10 KiB
C
365 lines
10 KiB
C
|
|
||
|
/*
|
||
|
* Windows/Network Interface
|
||
|
* Copyright (C) Microsoft 1989-1994
|
||
|
*
|
||
|
* Standard WINNET Driver Header File, spec version 3.10
|
||
|
*/
|
||
|
|
||
|
|
||
|
typedef WORD far * LPWORD;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* SPOOLING - CONTROLLING JOBS
|
||
|
*/
|
||
|
|
||
|
#define WNJ_NULL_JOBID 0
|
||
|
|
||
|
|
||
|
WORD WINAPI WNetOpenJob(LPSTR,LPSTR,WORD,LPINT);
|
||
|
WORD WINAPI WNetCloseJob(WORD,LPINT,LPSTR);
|
||
|
WORD WINAPI WNetWriteJob(HANDLE,LPSTR,LPINT);
|
||
|
WORD WINAPI WNetAbortJob(WORD,LPSTR);
|
||
|
WORD WINAPI WNetHoldJob(LPSTR,WORD);
|
||
|
WORD WINAPI WNetReleaseJob(LPSTR,WORD);
|
||
|
WORD WINAPI WNetCancelJob(LPSTR,WORD);
|
||
|
WORD WINAPI WNetSetJobCopies(LPSTR,WORD,WORD);
|
||
|
|
||
|
/*
|
||
|
* SPOOLING - QUEUE AND JOB INFO
|
||
|
*/
|
||
|
|
||
|
typedef struct _queuestruct {
|
||
|
WORD pqName;
|
||
|
WORD pqComment;
|
||
|
WORD pqStatus;
|
||
|
WORD pqJobcount;
|
||
|
WORD pqPrinters;
|
||
|
} QUEUESTRUCT;
|
||
|
|
||
|
typedef QUEUESTRUCT far * LPQUEUESTRUCT;
|
||
|
|
||
|
#define WNPRQ_ACTIVE 0x0
|
||
|
#define WNPRQ_PAUSE 0x1
|
||
|
#define WNPRQ_ERROR 0x2
|
||
|
#define WNPRQ_PENDING 0x3
|
||
|
#define WNPRQ_PROBLEM 0x4
|
||
|
|
||
|
|
||
|
typedef struct _jobstruct {
|
||
|
WORD pjId;
|
||
|
WORD pjUsername;
|
||
|
WORD pjParms;
|
||
|
WORD pjPosition;
|
||
|
WORD pjStatus;
|
||
|
DWORD pjSubmitted;
|
||
|
DWORD pjSize;
|
||
|
WORD pjCopies;
|
||
|
WORD pjComment;
|
||
|
} JOBSTRUCT;
|
||
|
|
||
|
typedef JOBSTRUCT far * LPJOBSTRUCT;
|
||
|
|
||
|
#define WNPRJ_QSTATUS 0x0007
|
||
|
#define WNPRJ_QS_QUEUED 0x0000
|
||
|
#define WNPRJ_QS_PAUSED 0x0001
|
||
|
#define WNPRJ_QS_SPOOLING 0x0002
|
||
|
#define WNPRJ_QS_PRINTING 0x0003
|
||
|
#define WNPRJ_DEVSTATUS 0x0FF8
|
||
|
#define WNPRJ_DS_COMPLETE 0x0008
|
||
|
#define WNPRJ_DS_INTERV 0x0010
|
||
|
#define WNPRJ_DS_ERROR 0x0020
|
||
|
#define WNPRJ_DS_DESTOFFLINE 0x0040
|
||
|
#define WNPRJ_DS_DESTPAUSED 0x0080
|
||
|
#define WNPRJ_DS_NOTIFY 0x0100
|
||
|
#define WNPRJ_DS_DESTNOPAPER 0x0200
|
||
|
#define WNPRJ_DS_DESTFORMCHG 0x0400
|
||
|
#define WNPRJ_DS_DESTCRTCHG 0x0800
|
||
|
#define WNPRJ_DS_DESTPENCHG 0x1000
|
||
|
|
||
|
#define SP_QUEUECHANGED 0x0500
|
||
|
|
||
|
|
||
|
WORD WINAPI WNetWatchQueue(HWND,LPSTR,LPSTR,WORD);
|
||
|
WORD WINAPI WNetUnwatchQueue(LPSTR);
|
||
|
WORD WINAPI WNetLockQueueData(LPSTR,LPSTR,LPQUEUESTRUCT FAR *);
|
||
|
WORD WINAPI WNetUnlockQueueData(LPSTR);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* CONNECTIONS
|
||
|
*
|
||
|
* these are defined in windows.h now
|
||
|
*
|
||
|
* WORD WINAPI WNetAddConnection(LPSTR,LPSTR,LPSTR);
|
||
|
* WORD WINAPI WNetCancelConnection(LPSTR,BOOL);
|
||
|
* WORD WINAPI WNetGetConnection(LPSTR,LPSTR,LPWORD);
|
||
|
*/
|
||
|
|
||
|
WORD WINAPI WNetRestoreConnection(HWND,LPSTR);
|
||
|
|
||
|
/*
|
||
|
* CAPABILITIES
|
||
|
*/
|
||
|
|
||
|
#define WNNC_SPEC_VERSION 0x0001
|
||
|
|
||
|
#define WNNC_NET_TYPE 0x0002
|
||
|
#define WNNC_NET_NONE 0x0000
|
||
|
#define WNNC_NET_MSNet 0x0100
|
||
|
#define WNNC_NET_LanMan 0x0200
|
||
|
#define WNNC_NET_NetWare 0x0300
|
||
|
#define WNNC_NET_Vines 0x0400
|
||
|
#define WNNC_NET_10NET 0x0500
|
||
|
#define WNNC_NET_Locus 0x0600
|
||
|
#define WNNC_NET_Sun_PC_NFS 0x0700
|
||
|
#define WNNC_NET_LANstep 0x0800
|
||
|
#define WNNC_NET_9TILES 0x0900
|
||
|
#define WNNC_NET_LANtastic 0x0A00
|
||
|
#define WNNC_NET_AS400 0x0B00
|
||
|
#define WNNC_NET_FTP_NFS 0x0C00
|
||
|
#define WNNC_NET_PATHWORKS 0x0D00
|
||
|
#define WNNC_NET_LifeNet 0x0E00
|
||
|
#define WNNC_NET_POWERLan 0x0F00
|
||
|
#define WNNC_NET_BWNFS 0x1000
|
||
|
#define WNNC_NET_Cogent 0x1100
|
||
|
#define WNNC_NET_Farallon 0x1200
|
||
|
#define WNNC_NET_MultiNet 0x8000
|
||
|
#define WNNC_SUBNET_NONE 0x0000
|
||
|
#define WNNC_SUBNET_MSNet 0x0001
|
||
|
#define WNNC_SUBNET_LanMan 0x0002
|
||
|
#define WNNC_SUBNET_WinWorkgroups 0x0004
|
||
|
#define WNNC_SUBNET_NetWare 0x0008
|
||
|
#define WNNC_SUBNET_Vines 0x0010
|
||
|
#define WNNC_SUBNET_10NET 0x0020
|
||
|
#define WNNC_SUBNET_Locus 0x0040
|
||
|
#define WNNC_SUBNET_Sun_PC_NFS 0x0080
|
||
|
#define WNNC_SUBNET_LANstep 0x0100
|
||
|
#define WNNC_SUBNET_9TILES 0x0200
|
||
|
#define WNNC_SUBNET_LANtastic 0x0400
|
||
|
#define WNNC_SUBNET_AS400 0x0800
|
||
|
#define WNNC_SUBNET_FTP_NFS 0x1000
|
||
|
#define WNNC_SUBNET_PATHWORKS 0x2000
|
||
|
#define WNNC_SUBNET_Extension 0x4000
|
||
|
#define WNNC_SUBNET_Other 0x8000
|
||
|
|
||
|
#define WNNC_DRIVER_VERSION 0x0003
|
||
|
|
||
|
#define WNNC_USER 0x0004
|
||
|
#define WNNC_USR_GetUser 0x0001
|
||
|
|
||
|
#define WNNC_CONNECTION 0x0006
|
||
|
#define WNNC_CON_AddConnection 0x0001
|
||
|
#define WNNC_CON_CancelConnection 0x0002
|
||
|
#define WNNC_CON_GetConnections 0x0004
|
||
|
#define WNNC_CON_AutoConnect 0x0008
|
||
|
#define WNNC_CON_BrowseDialog 0x0010
|
||
|
#define WNNC_CON_RestoreConnection 0x0020
|
||
|
|
||
|
#define WNNC_PRINTING 0x0007
|
||
|
#define WNNC_PRT_OpenJob 0x0002
|
||
|
#define WNNC_PRT_CloseJob 0x0004
|
||
|
#define WNNC_PRT_HoldJob 0x0010
|
||
|
#define WNNC_PRT_ReleaseJob 0x0020
|
||
|
#define WNNC_PRT_CancelJob 0x0040
|
||
|
#define WNNC_PRT_SetJobCopies 0x0080
|
||
|
#define WNNC_PRT_WatchQueue 0x0100
|
||
|
#define WNNC_PRT_UnwatchQueue 0x0200
|
||
|
#define WNNC_PRT_LockQueueData 0x0400
|
||
|
#define WNNC_PRT_UnlockQueueData 0x0800
|
||
|
#define WNNC_PRT_ChangeMsg 0x1000
|
||
|
#define WNNC_PRT_AbortJob 0x2000
|
||
|
#define WNNC_PRT_NoArbitraryLock 0x4000
|
||
|
#define WNNC_PRT_WriteJob 0x8000
|
||
|
|
||
|
#define WNNC_DIALOG 0x0008
|
||
|
#define WNNC_DLG_DeviceMode 0x0001
|
||
|
#define WNNC_DLG_BrowseDialog 0x0002
|
||
|
#define WNNC_DLG_ConnectDialog 0x0004
|
||
|
#define WNNC_DLG_DisconnectDialog 0x0008
|
||
|
#define WNNC_DLG_ViewQueueDialog 0x0010
|
||
|
#define WNNC_DLG_PropertyDialog 0x0020
|
||
|
#define WNNC_DLG_ConnectionDialog 0x0040
|
||
|
#define WNNC_DLG_SharesDialog 0x0100
|
||
|
#define WNNC_DLG_ShareAsDialog 0x0200
|
||
|
|
||
|
#define WNNC_ADMIN 0x0009
|
||
|
#define WNNC_ADM_GetDirectoryType 0x0001
|
||
|
#define WNNC_ADM_DirectoryNotify 0x0002
|
||
|
#define WNNC_ADM_LongNames 0x0004
|
||
|
#define WNNC_ADM_SetDefaultDrive 0x0008
|
||
|
|
||
|
|
||
|
#define WNNC_ERROR 0x000A
|
||
|
#define WNNC_ERR_GetError 0x0001
|
||
|
#define WNNC_ERR_GetErrorText 0x0002
|
||
|
|
||
|
|
||
|
WORD WINAPI WNetGetCaps(WORD);
|
||
|
|
||
|
/*
|
||
|
* OTHER
|
||
|
*/
|
||
|
|
||
|
WORD WINAPI WNetGetUser(LPSTR,LPINT);
|
||
|
|
||
|
/*
|
||
|
* BROWSE DIALOG
|
||
|
*/
|
||
|
|
||
|
#define WNBD_CONN_UNKNOWN 0x0
|
||
|
#define WNBD_CONN_DISKTREE 0x1
|
||
|
#define WNBD_CONN_PRINTQ 0x3
|
||
|
#define WNBD_MAX_LENGTH 0x80 // path length, includes the NULL
|
||
|
|
||
|
#define WNTYPE_DRIVE 1
|
||
|
#define WNTYPE_FILE 2
|
||
|
#define WNTYPE_PRINTER 3
|
||
|
#define WNTYPE_COMM 4
|
||
|
|
||
|
#define WNPS_FILE 0
|
||
|
#define WNPS_DIR 1
|
||
|
#define WNPS_MULT 2
|
||
|
|
||
|
WORD WINAPI WNetDeviceMode(HWND);
|
||
|
WORD WINAPI WNetBrowseDialog(HWND,WORD,LPSTR);
|
||
|
WORD WINAPI WNetConnectDialog(HWND,WORD);
|
||
|
WORD WINAPI WNetDisconnectDialog(HWND,WORD);
|
||
|
WORD WINAPI WNetConnectionDialog(HWND,WORD);
|
||
|
WORD WINAPI WNetViewQueueDialog(HWND,LPSTR);
|
||
|
WORD WINAPI WNetPropertyDialog(HWND hwndParent, WORD iButton, WORD nPropSel, LPSTR lpszName, WORD nType);
|
||
|
WORD WINAPI WNetGetPropertyText(WORD iButton, WORD nPropSel, LPSTR lpszName, LPSTR lpszButtonName, WORD cbButtonName, WORD nType);
|
||
|
|
||
|
/*
|
||
|
* ADMIN
|
||
|
*/
|
||
|
|
||
|
#define WNDT_NORMAL 0
|
||
|
#define WNDT_NETWORK 2
|
||
|
|
||
|
#define WNDN_MKDIR 1
|
||
|
#define WNDN_RMDIR 2
|
||
|
#define WNDN_MVDIR 3
|
||
|
|
||
|
WORD WINAPI WNetGetDirectoryType(LPSTR,LPINT);
|
||
|
WORD WINAPI WNetDirectoryNotify(HWND,LPSTR,WORD);
|
||
|
|
||
|
/*
|
||
|
* ERRORS
|
||
|
*/
|
||
|
|
||
|
WORD WINAPI WNetGetError(LPINT);
|
||
|
WORD WINAPI WNetGetErrorText(WORD,LPSTR,LPINT);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* STATUS CODES
|
||
|
*/
|
||
|
|
||
|
/* General */
|
||
|
#define WN_SUCCESS 0x0000
|
||
|
#define WN_NOT_SUPPORTED 0x0001
|
||
|
#define WN_NET_ERROR 0x0002
|
||
|
#define WN_MORE_DATA 0x0003
|
||
|
#define WN_BAD_POINTER 0x0004
|
||
|
#define WN_BAD_VALUE 0x0005
|
||
|
#define WN_BAD_PASSWORD 0x0006
|
||
|
#define WN_ACCESS_DENIED 0x0007
|
||
|
#define WN_FUNCTION_BUSY 0x0008
|
||
|
#define WN_WINDOWS_ERROR 0x0009
|
||
|
#define WN_BAD_USER 0x000A
|
||
|
#define WN_OUT_OF_MEMORY 0x000B
|
||
|
#define WN_CANCEL 0x000C
|
||
|
#define WN_CONTINUE 0x000D
|
||
|
|
||
|
/* Connection */
|
||
|
#define WN_NOT_CONNECTED 0x0030
|
||
|
#define WN_OPEN_FILES 0x0031
|
||
|
#define WN_BAD_NETNAME 0x0032
|
||
|
#define WN_BAD_LOCALNAME 0x0033
|
||
|
#define WN_ALREADY_CONNECTED 0x0034
|
||
|
#define WN_DEVICE_ERROR 0x0035
|
||
|
#define WN_CONNECTION_CLOSED 0x0036
|
||
|
/* Printing */
|
||
|
|
||
|
#define WN_BAD_JOBID 0x0040
|
||
|
#define WN_JOB_NOT_FOUND 0x0041
|
||
|
#define WN_JOB_NOT_HELD 0x0042
|
||
|
#define WN_BAD_QUEUE 0x0043
|
||
|
#define WN_BAD_FILE_HANDLE 0x0044
|
||
|
#define WN_CANT_SET_COPIES 0x0045
|
||
|
#define WN_ALREADY_LOCKED 0x0046
|
||
|
|
||
|
/* BUGBUG, review these: new errors for chicago winnet calls */
|
||
|
#define WN_NO_MORE_ENTRIES 0x0047
|
||
|
#define WN_NO_NETWORK 0x0048
|
||
|
#define WN_BAD_HANDLE 0x0049
|
||
|
#define WN_NO_ERROR 0x0050
|
||
|
#define WN_NO_NET_OR_BAD_PATH 0x0051
|
||
|
#define WN_NOT_AUTHENTICATED 0x0052
|
||
|
#define WN_NOT_CONTAINER 0x0053
|
||
|
#define WN_NOT_LOGGED_ON 0x0054
|
||
|
#define WN_RETRY 0x0055
|
||
|
#define WN_BAD_PROVIDER 0x0056
|
||
|
|
||
|
|
||
|
#ifdef LFN
|
||
|
|
||
|
/* this is the data structure returned from LFNFindFirst and
|
||
|
* LFNFindNext. The last field, achName, is variable length. The size
|
||
|
* of the name in that field is given by cchName, plus 1 for the zero
|
||
|
* terminator.
|
||
|
*/
|
||
|
typedef struct _filefindbuf2
|
||
|
{
|
||
|
WORD fdateCreation;
|
||
|
WORD ftimeCreation;
|
||
|
WORD fdateLastAccess;
|
||
|
WORD ftimeLastAccess;
|
||
|
WORD fdateLastWrite;
|
||
|
WORD ftimeLastWrite;
|
||
|
DWORD cbFile;
|
||
|
DWORD cbFileAlloc;
|
||
|
WORD attr;
|
||
|
DWORD cbList;
|
||
|
BYTE cchName;
|
||
|
BYTE achName[1];
|
||
|
} FILEFINDBUF2, FAR * PFILEFINDBUF2;
|
||
|
|
||
|
typedef BOOL (WINAPI *PQUERYPROC)( void );
|
||
|
|
||
|
WORD WINAPI LFNFindFirst(LPSTR,WORD,LPINT,LPINT,WORD,PFILEFINDBUF2);
|
||
|
WORD WINAPI LFNFindNext(HANDLE,LPINT,WORD,PFILEFINDBUF2);
|
||
|
WORD WINAPI LFNFindClose(HANDLE);
|
||
|
WORD WINAPI LFNGetAttribute(LPSTR,LPINT);
|
||
|
WORD WINAPI LFNSetAttribute(LPSTR,WORD);
|
||
|
WORD WINAPI LFNCopy(LPSTR,LPSTR,PQUERYPROC);
|
||
|
WORD WINAPI LFNMove(LPSTR,LPSTR);
|
||
|
WORD WINAPI LFNDelete(LPSTR);
|
||
|
WORD WINAPI LFNMKDir(LPSTR);
|
||
|
WORD WINAPI LFNRMDir(LPSTR);
|
||
|
WORD WINAPI LFNGetVolumeLabel(WORD,LPSTR);
|
||
|
WORD WINAPI LFNSetVolumeLabel(WORD,LPSTR);
|
||
|
WORD WINAPI LFNParse(LPSTR,LPSTR,LPSTR);
|
||
|
WORD WINAPI LFNVolumeType(WORD,LPINT);
|
||
|
|
||
|
/* return values from LFNParse
|
||
|
*/
|
||
|
#define FILE_83_CI 0
|
||
|
#define FILE_83_CS 1
|
||
|
#define FILE_LONG 2
|
||
|
|
||
|
/* volumes types from LFNVolumeType
|
||
|
*/
|
||
|
#define VOLUME_STANDARD 0
|
||
|
#define VOLUME_LONGNAMES 1
|
||
|
|
||
|
// will add others later, == DOS int 21h error codes.
|
||
|
|
||
|
// this error code causes a call to WNetGetError, WNetGetErrorText
|
||
|
// to get the error text.
|
||
|
#define ERROR_NETWORKSPECIFIC 0xFFFF
|
||
|
|
||
|
#endif
|