| /* |
| * Network functions |
| */ |
| |
| #include <ctype.h> |
| #include <stdio.h> |
| |
| #include "windows.h" |
| #include "winerror.h" |
| #include "drive.h" |
| |
| #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 |
| #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 |
| #define WN_NO_NETWORK ERROR_NO_NETWORK |
| |
| |
| typedef LPVOID LPNETRESOURCE16; |
| |
| /************************************************************************** |
| * WNetErrorText [USER.499] |
| */ |
| int WINAPI WNetErrorText(WORD nError,LPSTR lpszText,WORD cbText) |
| { |
| printf("EMPTY STUB !!! WNetErrorText(%x,%p,%x)\n", |
| nError,lpszText,cbText); |
| return FALSE; |
| } |
| |
| /************************************************************************** |
| * WNetOpenJob [USER.501] |
| */ |
| int WINAPI WNetOpenJob(LPSTR szQueue,LPSTR szJobTitle,WORD nCopies,LPWORD pfh) |
| { |
| printf("EMPTY STUB !!! WNetOpenJob('%s','%s',%x,%p)\n", |
| szQueue,szJobTitle,nCopies,pfh); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetCloseJob [USER.502] |
| */ |
| int WINAPI WNetCloseJob(WORD fh,LPWORD pidJob,LPSTR szQueue) |
| { |
| printf("EMPTY STUB !!! WNetCloseJob(%x,%p,'%s')\n", |
| fh,pidJob,szQueue); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetAbortJob [USER.503] |
| */ |
| int WINAPI WNetAbortJob(LPSTR szQueue,WORD wJobId) |
| { |
| printf("EMPTY STUB !!! WNetAbortJob('%s',%x)\n", |
| szQueue,wJobId); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetHoldJob [USER.504] |
| */ |
| int WINAPI WNetHoldJob(LPSTR szQueue,WORD wJobId) |
| { |
| printf("EMPTY STUB !!! WNetHoldJob('%s',%x)\n", |
| szQueue,wJobId); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetReleaseJob [USER.505] |
| */ |
| int WINAPI WNetReleaseJob(LPSTR szQueue,WORD wJobId) |
| { |
| printf("EMPTY STUB !!! WNetReleaseJob('%s',%x)\n", |
| szQueue,wJobId); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetCancelJob [USER.506] |
| */ |
| int WINAPI WNetCancelJob(LPSTR szQueue,WORD wJobId) |
| { |
| printf("EMPTY STUB !!! WNetCancelJob('%s',%x)\n", |
| szQueue,wJobId); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetSetJobCopies [USER.507] |
| */ |
| int WINAPI WNetSetJobCopies(LPSTR szQueue,WORD wJobId,WORD nCopies) |
| { |
| printf("EMPTY STUB !!! WNetSetJobCopies('%s',%x,%x)\n", |
| szQueue,wJobId,nCopies); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetWatchQueue [USER.508] |
| */ |
| int WINAPI WNetWatchQueue(HWND16 hWnd,LPSTR szLocal,LPSTR szUser,WORD nQueue) |
| { |
| printf("EMPTY STUB !!! WNetWatchQueue(%04x,'%s','%s',%x)\n", |
| hWnd,szLocal,szUser,nQueue); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetUnwatchQueue [USER.509] |
| */ |
| int WINAPI WNetUnwatchQueue(LPSTR szQueue) |
| { |
| printf("EMPTY STUB !!! WNetUnwatchQueue('%s')\n", szQueue); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetLockQueueData [USER.510] |
| */ |
| int WINAPI WNetLockQueueData(LPSTR szQueue,LPSTR szUser,void *lplpQueueStruct) |
| { |
| printf("EMPTY STUB !!! WNetLockQueueData('%s','%s',%p)\n", |
| szQueue,szUser,lplpQueueStruct); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetUnlockQueueData [USER.511] |
| */ |
| int WINAPI WNetUnlockQueueData(LPSTR szQueue) |
| { |
| printf("EMPTY STUB !!! WNetUnlockQueueData('%s')\n",szQueue); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetGetConnection [USER.512] |
| */ |
| int WINAPI WNetGetConnection16(LPSTR lpLocalName, |
| LPSTR lpRemoteName, UINT16 *cbRemoteName) |
| { |
| const char *path; |
| |
| if (lpLocalName[1] == ':') |
| { |
| int drive = toupper(lpLocalName[0]) - 'A'; |
| switch(GetDriveType16(drive)) |
| { |
| case DRIVE_CANNOTDETERMINE: |
| case DRIVE_DOESNOTEXIST: |
| return WN_BAD_LOCALNAME; |
| case DRIVE_REMOVABLE: |
| case DRIVE_FIXED: |
| return WN_NOT_CONNECTED; |
| case DRIVE_REMOTE: |
| path = DRIVE_GetLabel(drive); |
| if (strlen(path) + 1 > *cbRemoteName) |
| { |
| *cbRemoteName = strlen(path) + 1; |
| return WN_MORE_DATA; |
| } |
| strcpy( lpRemoteName, path ); |
| *cbRemoteName = strlen(lpRemoteName) + 1; |
| return WN_SUCCESS; |
| } |
| } |
| return WN_BAD_LOCALNAME; |
| } |
| |
| /************************************************************************** |
| * WNetGetCaps [USER.513] |
| */ |
| int WINAPI WNetGetCaps(WORD capability) |
| { |
| return 0; |
| } |
| |
| /************************************************************************** |
| * WNetDeviceMode [USER.514] |
| */ |
| int WINAPI WNetDeviceMode(HWND16 hWndOwner) |
| { |
| printf("EMPTY STUB !!! WNetDeviceMode(%04x)\n",hWndOwner); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetBrowseDialog [USER.515] |
| */ |
| int WINAPI WNetBrowseDialog(HWND16 hParent,WORD nType,LPSTR szPath) |
| { |
| printf("EMPTY STUB !!! WNetBrowseDialog(%04x,%x,'%s')\n", |
| hParent,nType,szPath); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetUser [USER.516] |
| */ |
| UINT16 WINAPI WNetGetUser(LPSTR lpLocalName, LPSTR lpUserName, DWORD *lpSize) |
| { |
| printf("EMPTY STUB !!! WNetGetUser(%p, %p, %p);\n", |
| lpLocalName, lpUserName, lpSize); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetAddConnection [USER.517] |
| */ |
| UINT16 WINAPI WNetAddConnection(LPSTR lpNetPath, LPSTR lpPassWord, |
| LPSTR lpLocalName) |
| { |
| printf("EMPTY STUB !!! WNetAddConnection('%s', %p, '%s');\n", |
| lpNetPath, lpPassWord, lpLocalName); |
| return WN_NO_NETWORK; |
| } |
| |
| |
| /************************************************************************** |
| * WNetCancelConnection [USER.518] |
| */ |
| UINT16 WINAPI WNetCancelConnection(LPSTR lpName, BOOL16 bForce) |
| { |
| printf("EMPTY STUB !!! WNetCancelConnection('%s', %04X);\n", |
| lpName, bForce); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetError [USER.519] |
| */ |
| int WINAPI WNetGetError(LPWORD nError) |
| { |
| printf("EMPTY STUB !!! WNetGetError(%p)\n",nError); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetErrorText [USER.520] |
| */ |
| int WINAPI WNetGetErrorText(WORD nError, LPSTR lpBuffer, LPWORD nBufferSize) |
| { |
| printf("EMPTY STUB !!! WNetGetErrorText(%x,%p,%p)\n", |
| nError,lpBuffer,nBufferSize); |
| return WN_NET_ERROR; |
| } |
| |
| /************************************************************************** |
| * WNetRestoreConnection [USER.523] |
| */ |
| int WINAPI WNetRestoreConnection(HWND16 hwndOwner,LPSTR lpszDevice) |
| { |
| printf("EMPTY STUB !!! WNetRestoreConnection(%04x,'%s')\n", |
| hwndOwner,lpszDevice); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetWriteJob [USER.524] |
| */ |
| int WINAPI WNetWriteJob(HANDLE16 hJob,void *lpData,LPWORD lpcbData) |
| { |
| printf("EMPTY STUB !!! WNetWriteJob(%04x,%p,%p)\n", |
| hJob,lpData,lpcbData); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WnetConnectDialog [USER.525] |
| */ |
| UINT16 WINAPI WNetConnectDialog(HWND16 hWndParent, WORD iType) |
| { |
| printf("EMPTY STUB !!! WNetConnectDialog(%04x, %4X)\n", hWndParent, iType); |
| return WN_SUCCESS; |
| } |
| |
| /************************************************************************** |
| * WNetDisconnectDialog [USER.526] |
| */ |
| int WINAPI WNetDisconnectDialog(HWND16 hwndOwner, WORD iType) |
| { |
| printf("EMPTY STUB !!! WNetDisconnectDialog(%04x,%x)\n", |
| hwndOwner,iType); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WnetConnectionDialog [USER.527] |
| */ |
| UINT16 WINAPI WNetConnectionDialog(HWND16 hWndParent, WORD iType) |
| { |
| printf("EMPTY STUB !!! WNetConnectionDialog(%04x, %4X)\n", |
| hWndParent, iType); |
| return WN_SUCCESS; |
| } |
| |
| /************************************************************************** |
| * WNetViewQueueDialog [USER.528] |
| */ |
| int WINAPI WNetViewQueueDialog(HWND16 hwndOwner,LPSTR lpszQueue) |
| { |
| printf("EMPTY STUB !!! WNetViewQueueDialog(%04x,'%s')\n", |
| hwndOwner,lpszQueue); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetPropertyDialog [USER.529] |
| */ |
| int WINAPI WNetPropertyDialog(HWND16 hwndParent,WORD iButton, |
| WORD nPropSel,LPSTR lpszName,WORD nType) |
| { |
| printf("EMPTY STUB !!! WNetPropertyDialog(%04x,%x,%x,'%s',%x)\n", |
| hwndParent,iButton,nPropSel,lpszName,nType); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetDirectoryType [USER.530] |
| */ |
| int WINAPI WNetGetDirectoryType(LPSTR lpName,void *lpType) |
| { |
| printf("EMPTY STUB !!! WNetGetDirectoryType('%s',%p)\n", |
| lpName,lpType); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetDirectoryNotify [USER.531] |
| */ |
| int WINAPI WNetDirectoryNotify(HWND16 hwndOwner,void *lpDir,WORD wOper) |
| { |
| printf("EMPTY STUB !!! WNetDirectoryNotify(%04x,%p,%x)\n", |
| hwndOwner,lpDir,wOper); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetPropertyText [USER.532] |
| */ |
| int WINAPI WNetGetPropertyText(HWND16 hwndParent,WORD iButton,WORD nPropSel, |
| LPSTR lpszName,WORD nType) |
| { |
| printf("EMPTY STUB !!! WNetGetPropertyText(%04x,%x,%x,'%s',%x)\n", |
| hwndParent,iButton,nPropSel,lpszName,nType); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetAddConnection2 [USER.???] |
| */ |
| UINT16 WINAPI WNetAddConnection2(LPSTR lpNetPath, LPSTR lpPassWord, |
| LPSTR lpLocalName, LPSTR lpUserName) |
| { |
| printf("EMPTY STUB !!! WNetAddConnection2('%s', %p, '%s', '%s');\n", |
| lpNetPath, lpPassWord, lpLocalName, lpUserName); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetCloseEnum [USER.???] |
| */ |
| UINT16 WINAPI WNetCloseEnum(HANDLE16 hEnum) |
| { |
| printf("EMPTY STUB !!! WNetCloseEnum(%04x);\n", hEnum); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetEnumResource [USER.???] |
| */ |
| UINT16 WINAPI WNetEnumResource(HANDLE16 hEnum, DWORD cRequ, |
| DWORD *lpCount, LPVOID lpBuf) |
| { |
| printf("EMPTY STUB !!! WNetEnumResource(%04x, %08lX, %p, %p);\n", |
| hEnum, cRequ, lpCount, lpBuf); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetOpenEnum [USER.???] |
| */ |
| UINT16 WINAPI WNetOpenEnum16(DWORD dwScope, DWORD dwType, |
| LPNETRESOURCE16 lpNet, HANDLE16 *lphEnum) |
| { |
| printf("EMPTY STUB !!! WNetOpenEnum(%08lX, %08lX, %p, %p);\n", |
| dwScope, dwType, lpNet, lphEnum); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetOpenEnumA [MPR.92] |
| */ |
| UINT32 WINAPI WNetOpenEnum32A(DWORD dwScope, DWORD dwType, |
| LPNETRESOURCE32A lpNet, HANDLE32 *lphEnum) |
| { |
| printf("EMPTY STUB !!! WNetOpenEnumA(%08lX, %08lX, %p, %p);\n", |
| dwScope, dwType, lpNet, lphEnum); |
| return WN_NO_NETWORK; |
| } |
| |
| /************************************************************************** |
| * WNetGetConnectionA [MPR.92] |
| */ |
| DWORD WINAPI |
| WNetGetConnection32A(LPCSTR localname,LPSTR remotename,LPDWORD buflen) |
| { |
| UINT16 x; |
| DWORD ret = WNetGetConnection16(localname,remotename,&x); |
| *buflen = x; |
| return ret; |
| } |
| |
| DWORD WINAPI |
| WNetGetResourceInformation32A( |
| LPNETRESOURCE32A netres,LPVOID buf,LPDWORD buflen,LPSTR systemstr |
| ) { |
| fprintf(stderr,"WNetGetResourceInformationA(%p,%p,%p,%p),stub!\n", |
| netres,buf,buflen,systemstr |
| ); |
| return WN_NO_NETWORK; |
| } |