/*****************************************************************/ /** Microsoft Windows for Workgroups **/ /** Copyright (C) Microsoft Corp., 1991-1995 **/ /*****************************************************************/ /* NETSPI.H -- Network service provider interface definitions. */ #ifndef _INC_NETSPI #define _INC_NETSPI #ifndef _WINNETWK_ #include #endif #ifndef _INC_NETMPR_ #include #endif #ifndef RC_INVOKED #pragma pack(1) /* Assume byte packing throughout */ #endif /* !RC_INVOKED */ #ifdef __cplusplus extern "C" { /* Assume C declarations for C++ */ #endif /* __cplusplus */ // // Capability masks and values. // #define WNNC_SPEC_VERSION 0x01 #define WNNC_SPEC_VERSION51 0x00050001 #define WNNC_NET_TYPE 0x02 // Net types defined in Winnetwk.h #define WNNC_DRIVER_VERSION 0x03 #define WNNC_USER 0x04 #define WNNC_USR_GETUSER 0x01 #define WNNC_CONNECTION 0x06 #define WNNC_CON_ADDCONNECTION 0x01 #define WNNC_CON_CANCELCONNECTION 0x02 #define WNNC_CON_GETCONNECTIONS 0x04 #define WNNC_CON_GETPERFORMANCE 0x08 #define WNNC_CON_GETUNIVERSALNAME 0x10 #define WNNC_CON_FORMATCONNECTION 0x20 #define WNNC_DIALOG 0x08 #define WNNC_DLG_FORMATNETWORKNAME 0x080 #define WNNC_DLG_GETRESOURCEPARENT 0x100 #define WNNC_DLG_GETRESOURCEINFORMATION 0x800 #define WNNC_ERROR 0x0A #define WNNC_ERR_GETERROR 0x01 #define WNNC_ERR_GETERRORTEXT 0x02 #define WNNC_ENUMERATION 0x0B #define WNNC_ENUM_GLOBAL 0x01 #define WNNC_ENUM_LOCAL 0x02 #define WNNC_ENUM_CONTEXT 0x04 #define WNNC_START 0x0C #define WNNC_START_WONT 0x00 #define WNNC_START_UNKNOWN 0xFFFFFFFF #define WNNC_START_DONE 0x01 #define WNNC_START_INACTIVE 0xFFFFFFFE #define WNNC_RESOURCE 0x0D #define WNNC_RES_VALIDLOCALDEVICE 0x80 #define WNNC_AUTHENTICATION 0x0E #define WNNC_AUTH_LOGON 0x02 #define WNNC_AUTH_LOGOFF 0x04 #define WNNC_AUTH_GETHOMEDIRECTORY 0x10 #define WNNC_AUTH_GETPOLICYPATH 0x20 #define WNNC_MAXCAPNO WNNC_AUTHENTICATION // // Profile strings. // #define NPProvider "NPProvider" #define NPName "NPName" #define NPDescription "NPDescription" #define NPID "NPID" // // Various defines. // //Spec version #define WNNC_DRIVER_MAJOR1 1 #define WNNC_DRIVER_MINOR1 1 #define WNNC_DRIVER(major,minor) (major*0x00010000 + minor) // // NP SPI Definitions. // #define SPIENTRY DWORD WINAPI typedef SPIENTRY F_NPGetCaps( DWORD nIndex ); F_NPGetCaps NPGetCaps; typedef F_NPGetCaps FAR *PF_NPGetCaps; typedef SPIENTRY F_NPGetUniversalName( LPTSTR lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize ); F_NPGetUniversalName NPGetUniversalName; typedef F_NPGetUniversalName FAR *PF_NPGetUniversalName; typedef SPIENTRY F_NPGetUser( LPTSTR lpName, LPTSTR lpAuthenticationID, LPDWORD lpBufferSize ); F_NPGetUser NPGetUser; typedef F_NPGetUser FAR *PF_NPGetUser; typedef SPIENTRY F_NPValidLocalDevice( DWORD dwType, DWORD dwNumber ); F_NPValidLocalDevice NPValidLocalDevice; typedef F_NPValidLocalDevice FAR *PF_NPValidLocalDevice; typedef SPIENTRY F_NPAddConnection( HWND hwndOwner, LPNETRESOURCE lpNetResource, LPTSTR lpPassword, LPTSTR lpUserID, DWORD dwFlags, LPTSTR lpAccessName, LPDWORD lpBufferSize, LPDWORD lpResult ); F_NPAddConnection NPAddConnection; typedef F_NPAddConnection FAR *PF_NPAddConnection; typedef SPIENTRY F_NPCancelConnection( LPTSTR lpName, BOOL fForce, DWORD dwFlags ); F_NPCancelConnection NPCancelConnection; typedef F_NPCancelConnection FAR *PF_NPCancelConnection; typedef SPIENTRY F_NPGetConnection( LPTSTR lpLocalName, LPTSTR lpRemoteName, LPDWORD lpBufferSize ); F_NPGetConnection NPGetConnection; typedef F_NPGetConnection FAR *PF_NPGetConnection; typedef SPIENTRY F_NPGetConnectionPerformance( LPTSTR lpRemoteName, LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct ); F_NPGetConnectionPerformance NPGetConnectionPerformance; typedef F_NPGetConnectionPerformance FAR *PF_NPGetConnectionPerformance; typedef SPIENTRY F_NPFormatNetworkName( LPTSTR lpRemoteName, LPTSTR lpFormattedName, LPDWORD lpnLength, DWORD dwFlags, DWORD dwAveCharPerLine ); F_NPFormatNetworkName NPFormatNetworkName; typedef F_NPFormatNetworkName FAR *PF_NPFormatNetworkName; typedef DWORD (FAR PASCAL *NPDISPLAYCALLBACK)( LPVOID lpUserData, DWORD dwDisplayType, LPTSTR lpszHeaders ); typedef SPIENTRY F_NPOpenEnum( DWORD dwScope, DWORD dwType, DWORD dwUsage, LPNETRESOURCE lpNetResource, LPHANDLE lphEnum ); F_NPOpenEnum NPOpenEnum; typedef F_NPOpenEnum FAR *PF_NPOpenEnum; typedef SPIENTRY F_NPEnumResource( HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, DWORD cbBuffer, LPDWORD lpcbFree ); F_NPEnumResource NPEnumResource; typedef F_NPEnumResource FAR *PF_NPEnumResource; typedef SPIENTRY F_NPCloseEnum( HANDLE hEnum ); F_NPCloseEnum NPCloseEnum; typedef F_NPCloseEnum FAR *PF_NPCloseEnum; typedef SPIENTRY F_NPGetResourceParent( LPNETRESOURCE lpNetResource, LPVOID lpBuffer, LPDWORD cbBuffer ); F_NPGetResourceParent NPGetResourceParent; typedef F_NPGetResourceParent FAR *PF_NPGetResourceParent; typedef SPIENTRY F_NPGetResourceInformation( LPNETRESOURCE lpNetResource, LPVOID lpBuffer, LPDWORD cbBuffer, LPSTR *lplpSystem ); F_NPGetResourceInformation NPGetResourceInformation; typedef F_NPGetResourceInformation FAR *PF_NPGetResourceInformation; typedef struct _LOGONINFO { LPTSTR lpUsername; LPTSTR lpPassword; DWORD cbUsername; DWORD cbPassword; } LOGONINFO, FAR *LPLOGONINFO; typedef SPIENTRY F_NPLogon( HWND hwndOwner, LPLOGONINFO lpAuthentInfo, LPLOGONINFO lpPreviousAuthentInfo, LPTSTR lpLogonScript, DWORD dwBufferSize, DWORD dwFlags ); F_NPLogon NPLogon; typedef F_NPLogon FAR *PF_NPLogon; typedef SPIENTRY F_NPLogoff( HWND hwndOwner, LPLOGONINFO lpAuthentInfo, DWORD dwReason ); F_NPLogoff NPLogoff; typedef F_NPLogoff FAR *PF_NPLogoff; typedef SPIENTRY F_NPChangePassword( LPLOGONINFO lpAuthentInfo, LPLOGONINFO lpPreviousAuthentInfo, DWORD dwAction ); F_NPChangePassword NPChangePassword; typedef F_NPChangePassword FAR *PF_NPChangePassword; typedef SPIENTRY F_NPChangePasswordHwnd( HWND hwndOwner ); F_NPChangePasswordHwnd NPChangePasswordHwnd; typedef F_NPChangePasswordHwnd FAR *PF_NPChangePasswordHwnd; typedef SPIENTRY F_NPGetPasswordStatus( DWORD nIndex ); F_NPGetPasswordStatus NPGetPasswordStatus; typedef F_NPGetPasswordStatus FAR *PF_NPGetPasswordStatus; typedef SPIENTRY F_NPGetHomeDirectory( LPTSTR lpDirectory, LPDWORD lpBufferSize ); F_NPGetHomeDirectory NPGetHomeDirectory; typedef F_NPGetHomeDirectory FAR *PF_NPGetHomeDirectory; typedef SPIENTRY F_NPGetPolicyPath( LPTSTR lpPath, LPDWORD lpBufferSize, DWORD dwFlags ); // flags for NPGetPolicyPath #define GPP_LOADBALANCE 0x0001 F_NPGetPolicyPath NPGetPolicyPath; typedef F_NPGetPolicyPath FAR *PF_NPGetPolicyPath; // // MPR Services. // #define NPSGetProviderHandle NPSGetProviderHandleA #define NPSGetProviderName NPSGetProviderNameA #define NPSGetSectionName NPSGetSectionNameA #define NPSSetExtendedError NPSSetExtendedErrorA #define NPSSetCustomText NPSSetCustomTextA #define NPSCopyString NPSCopyStringA #define NPSDeviceGetNumber NPSDeviceGetNumberA #define NPSDeviceGetString NPSDeviceGetStringA #define NPSNotifyRegister NPSNotifyRegisterA #define NPSNotifyGetContext NPSNotifyGetContextA #define NPSAuthenticationDialog NPSAuthenticationDialogA #define NPSERVICE WINAPI #define HPROVIDER LPVOID typedef HPROVIDER FAR * PHPROVIDER; typedef struct { DWORD cbStructure; /* size of this structure in bytes */ HWND hwndOwner; /* owner window for the authentication dialog */ LPCSTR lpResource; /* remote name of resource being accessed */ LPSTR lpUsername; /* default username to show, NULL to hide field */ DWORD cbUsername; /* size of lpUsername buffer, set to length copied on exit */ LPSTR lpPassword; /* default password to show */ DWORD cbPassword; /* size of lpPassword buffer, set to length copied on exit */ LPSTR lpOrgUnit; /* default org unit to show, NULL to hide field */ DWORD cbOrgUnit; /* size of lpOrgUnit buffer, set to length copied on exit */ LPCSTR lpOUTitle; /* title of org unit field, NULL for default title */ LPCSTR lpExplainText; /* explanatory text at top, NULL for default text */ LPCSTR lpDefaultUserName; /* explanatory text at top, NULL for default text */ DWORD dwFlags; /* flags (see below) */ } AUTHDLGSTRUCTA, FAR *LPAUTHDLGSTRUCTA; #define AUTHDLGSTRUCT AUTHDLGSTRUCTA #define LPAUTHDLGSTRUCT LPAUTHDLGSTRUCTA #define AUTHDLG_ENABLECACHE 0x00000001 /* enable and show PW cache checkbox */ #define AUTHDLG_CHECKCACHE 0x00000002 /* check PW cache checkbox by default */ #define AUTHDLG_CACHEINVALID 0x00000004 /* cached PW was invalid (special text) */ #define AUTHDLG_USE_DEFAULT_NAME 0x00000008 /* enable and show use "guest" box */ #define AUTHDLG_CHECKDEFAULT_NAME 0x00000010 /* check "guest" box */ #define AUTHDLG_LOGON 0x00000020 /* include Windows logo bitmap */ #define AUTHDLG_ENABLECACHE 0x00000001 /* enable and show PW cache checkbox */ #define AUTHDLG_CHECKCACHE 0x00000002 /* check PW cache checkbox by default */ #define AUTHDLG_CACHEINVALID 0x00000004 /* cached PW was invalid (special text) */ #define AUTHDLG_USE_DEFAULT_NAME 0x00000008 /* enable and show use "guest" box */ #define AUTHDLG_CHECKDEFAULT_NAME 0x00000010 /* check "guest" box */ #define AUTHDLG_LOGON 0x00000020 /* include Windows logo bitmap */ DWORD NPSERVICE NPSAuthenticationDialog( LPAUTHDLGSTRUCT lpAuthDlgStruct ); DWORD NPSERVICE NPSGetProviderHandle( PHPROVIDER phProvider ); DWORD NPSERVICE NPSGetProviderName( HPROVIDER hProvider, LPCSTR FAR * lpszProviderName ); DWORD NPSERVICE NPSGetSectionName( HPROVIDER hProvider, LPCSTR FAR * lpszSectionName ); DWORD NPSERVICE NPSSetExtendedError ( DWORD NetSpecificError, LPSTR lpExtendedErrorText ); VOID NPSERVICE NPSSetCustomText ( LPSTR lpCustomErrorText ); DWORD NPSERVICE NPSCopyString ( LPCTSTR lpString, LPVOID lpBuffer, LPDWORD lpdwBufferSize ); DWORD NPSERVICE NPSDeviceGetNumber ( LPTSTR lpLocalName, LPDWORD lpdwNumber, LPDWORD lpdwType ); DWORD NPSERVICE NPSDeviceGetString ( DWORD dwNumber, DWORD dwType, LPTSTR lpLocalName, LPDWORD lpdwBufferSize ); // Notification Service. enum NOTIFYTYPE { NotifyAddConnection, NotifyCancelConnection, NotifyGetConnectionPerformance }; #define NOTIFY_PRE 0x00 #define NOTIFY_POST 0x01 typedef struct _NOTIFYINFO { DWORD cbStructure; /* size of NOTIFYINFO */ DWORD dwNotifyStatus; /* Pre/post notification status */ DWORD dwOperationStatus; /* Status of operation */ LPVOID lpNPContext; /* NP context */ } NOTIFYINFO, FAR *LPNOTIFYINFO; typedef struct _NOTIFYADD { DWORD cbStructure; /* size of NOTIFYADD */ HWND hwndOwner; /* hWnd for UI */ NETRESOURCE NetResource; /* Resource to add */ DWORD dwAddFlags; /* Add flags */ LPTSTR lpAccessName; /* System name for connection */ LPDWORD lpBufferSize; /* Size of AccessName buffer */ DWORD dwResult; /* Info about connection */ DWORD dwAddContext; /* Context of add connection */ } NOTIFYADD, FAR *LPNOTIFYADD; #define CONNECT_CTXT_RESTORE 0x00000001 #define CONNECT_CTXT_GLOBAL 0x00000002 #define CONNECT_CTXT_PROVIDER 0x00000004 #define CONNECT_CTXT_SINGLE 0x00000008 typedef struct _NOTIFYCANCEL { DWORD cbStructure; /* size of NOTIFYCANCEL */ LPTSTR lpName; /* Local device name or remote name of resource */ LPTSTR lpProvider; /* Provider name of resource cancelled */ DWORD dwFlags; /* Cancel flags */ BOOL fForce; /* Cancel force */ } NOTIFYCANCEL, FAR *LPNOTIFYCANCEL; typedef struct _NOTIFYPERFORMANCE { DWORD cbStructure; /* size of NOTIFYPERFORMANCE */ LPTSTR lpRemoteName; /* network resource name */ LPTSTR lpProviderName; /* provider to try/provider that responded */ LPNETCONNECTINFOSTRUCT lpNetConnectInfo; /* performance information requested/returned */ } NOTIFYPERFORMANCE, FAR *LPNOTIFYPERFORMANCE; typedef DWORD (FAR PASCAL *NOTIFYCALLBACK)( LPNOTIFYINFO lpNotifyInfo, LPVOID lpOperationInfo ); DWORD NPSERVICE NPSNotifyRegister( enum NOTIFYTYPE NotifyType, NOTIFYCALLBACK P_FNotifyCallBack ); LPVOID NPSERVICE NPSNotifyGetContext ( NOTIFYCALLBACK P_FNotifyCallBack ); #ifdef __cplusplus } #endif /* __cplusplus */ #ifndef RC_INVOKED #pragma pack() #endif /* !RC_INVOKED */ #endif /* !_INC_NETSPI */