!
! ********************************************************************
! *                                                                  *
! *  Copyright 2001 Compaq Computer Corporation                      *
! *                                                                  *
! *  COMPAQ Registered in U.S. Patent and Trademark Office.          *
! *                                                                  *
! *  Confidential computer software. Valid license from Compaq or    *
! *  authorized sublicensor required for possession, use or copying. *
! *  Consistent with FAR 12.211 and 12.212, Commercial Computer      *
! *  Software, Computer Software Documentation, and Technical Data   *
! *  for Commercial Items are licensed to the U.S. Government under  *
! *  vendor's standard commercial license.                           *
! *                                                                  *
! ********************************************************************
!
!DEC$ IF .NOT. DEFINED (MPR_ )
!DEC$ DEFINE xMPR_  
!
!
!
!         *****MPR.LIB Interfaces*****
! 
!     This module defines routine interfaces to the Windows APIs
!     for both the 32-bit (_M_IX86) and 64-bit (_M_IA64) versions of the
!     NT4 and WIN2000 operating systems.  
!
!     The base for this version is: 
!
!           Microsoft Platform Software Development Kit (SDK)
!                Win64 Pre-alpha February 2000
!
!     As with the C header files distributed with the SDK, there
!     is only one common set of files for both 64-bit and 32-bit
!     operating systems.
!   
!     Within the Fortran versions of the header files, the
!     following symbols are used to control the compilation.
! 
!     _M_IA64 conditionally compiles items for 64 bit systems.
!     _M_IX86 conditionally compiles items for 32 bit systesm.
!
!     Known problems: 
!
!07-12-00
!
module MPR
use dfwinty
!DEC$OBJCOMMENT LIB:"MPR.LIB"
!
INTERFACE 
FUNCTION WNetAddConnection( &
        lpRemoteName, &
        lpPassword, &
        lpLocalName)
USE DFWINTY
  integer(DWORD) :: WNetAddConnection ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetAddConnectionA' :: WNetAddConnection
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpRemoteName
  character*(*) lpRemoteName ! LPCSTR lpRemoteName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpPassword
  character*(*) lpPassword ! LPCSTR lpPassword
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpLocalName
  character*(*) lpLocalName ! LPCSTR lpLocalName
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetAddConnection2( &
        lpNetResource, &
        lpPassword, &
        lpUserName, &
        dwFlags)
USE DFWINTY
  integer(DWORD) :: WNetAddConnection2 ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetAddConnection2A' :: WNetAddConnection2
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpPassword
  character*(*) lpPassword ! LPCSTR lpPassword
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpUserName
  character*(*) lpUserName ! LPCSTR lpUserName
  integer(DWORD) dwFlags ! DWORD dwFlags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetAddConnection3( &
        hwndOwner, &
        lpNetResource, &
        lpPassword, &
        lpUserName, &
        dwFlags)
USE DFWINTY
  integer(DWORD) :: WNetAddConnection3 ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetAddConnection3A' :: WNetAddConnection3
  integer(HANDLE) hwndOwner ! HWND hwndOwner
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpPassword
  character*(*) lpPassword ! LPCSTR lpPassword
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpUserName
  character*(*) lpUserName ! LPCSTR lpUserName
  integer(DWORD) dwFlags ! DWORD dwFlags
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetCancelConnection( &
        lpName, &
        fForce)
USE DFWINTY
  integer(DWORD) :: WNetCancelConnection ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetCancelConnectionA' :: WNetCancelConnection
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpName
  character*(*) lpName ! LPCSTR lpName
  integer(BOOL) fForce ! BOOL fForce
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetCancelConnection2( &
        lpName, &
        dwFlags, &
        fForce)
USE DFWINTY
  integer(DWORD) :: WNetCancelConnection2 ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetCancelConnection2A' :: WNetCancelConnection2
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: lpName
  character*(*) lpName ! LPCSTR lpName
  integer(DWORD) dwFlags ! DWORD dwFlags
  integer(BOOL) fForce ! BOOL fForce
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetConnection( &
        lpLocalName, &
        lpRemoteName, &
        lpnLength)
USE DFWINTY
  integer(DWORD) :: WNetGetConnection ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetConnectionA' :: WNetGetConnection
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpLocalName
  character*(*) lpLocalName ! LPCSTR lpLocalName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpRemoteName
  character*(*) lpRemoteName ! LPSTR lpRemoteName
  integer(LPDWORD) lpnLength ! LPDWORD lpnLength
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetUseConnection( &
        hwndOwner, &
        lpNetResource, &
        lpUserID, &
        lpPassword, &
        dwFlags, &
        lpAccessName, &
        lpBufferSize, &
        lpResult)
USE DFWINTY
  integer(DWORD) :: WNetUseConnection ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetUseConnectionA' :: WNetUseConnection
  integer(HANDLE) hwndOwner ! HWND hwndOwner
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpUserID
  character*(*) lpUserID ! LPCSTR lpUserID
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpPassword
  character*(*) lpPassword ! LPCSTR lpPassword
  integer(DWORD) dwFlags ! DWORD dwFlags
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpAccessName
  character*(*) lpAccessName ! LPSTR lpAccessName
  integer(LPDWORD) lpBufferSize ! LPDWORD lpBufferSize
  integer(LPDWORD) lpResult ! LPDWORD lpResult
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetConnectionDialog( &
        hwnd, &
        dwType)
USE DFWINTY
  integer(DWORD) :: WNetConnectionDialog ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetConnectionDialog' :: WNetConnectionDialog
  integer(HANDLE) hwnd ! HWND hwnd
  integer(DWORD) dwType ! DWORD dwType
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetDisconnectDialog( &
        hwnd, &
        dwType)
USE DFWINTY
  integer(DWORD) :: WNetDisconnectDialog ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetDisconnectDialog' :: WNetDisconnectDialog
  integer(HANDLE) hwnd ! HWND hwnd
  integer(DWORD) dwType ! DWORD dwType
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetConnectionDialog1( &
        lpConnDlgStruct)
USE DFWINTY
  integer(DWORD) :: WNetConnectionDialog1 ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetConnectionDialog1A' :: WNetConnectionDialog1
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpConnDlgStruct
  TYPE (T_CONNECTDLGSTRUCT) lpConnDlgStruct ! LPCONNECTDLGSTRUCTA lpConnDlgStruct
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetDisconnectDialog1( &
        lpConnDlgStruct)
USE DFWINTY
  integer(DWORD) :: WNetDisconnectDialog1 ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetDisconnectDialog1A' :: WNetDisconnectDialog1
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpConnDlgStruct
  TYPE (T_DISCDLGSTRUCT) lpConnDlgStruct ! LPDISCDLGSTRUCTA lpConnDlgStruct
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetOpenEnum( &
        dwScope, &
        dwType, &
        dwUsage, &
        lpNetResource, &
        lphEnum)
USE DFWINTY
  integer(DWORD) :: WNetOpenEnum ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetOpenEnumA' :: WNetOpenEnum
  integer(DWORD) dwScope ! DWORD dwScope
  integer(DWORD) dwType ! DWORD dwType
  integer(DWORD) dwUsage ! DWORD dwUsage
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC :: lphEnum
  integer(HANDLE) lphEnum ! LPHANDLE lphEnum
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetEnumResource( &
        hEnum, &
        lpcCount, &
        lpBuffer, &
        lpBufferSize)
USE DFWINTY
  integer(DWORD) :: WNetEnumResource ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetEnumResourceA' :: WNetEnumResource
  integer(HANDLE) hEnum ! HANDLE hEnum
  integer(LPDWORD) lpcCount ! LPDWORD lpcCount
  integer(LPVOID) lpBuffer ! LPVOID lpBuffer
  integer(LPDWORD) lpBufferSize ! LPDWORD lpBufferSize
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetCloseEnum( &
        hEnum)
USE DFWINTY
  integer(DWORD) :: WNetCloseEnum ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetCloseEnum' :: WNetCloseEnum
  integer(HANDLE) hEnum ! HANDLE hEnum
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetResourceParent( &
        lpNetResource, &
        lpBuffer, &
        lpcbBuffer)
USE DFWINTY
  integer(DWORD) :: WNetGetResourceParent ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetResourceParentA' :: WNetGetResourceParent
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
  integer(LPVOID) lpBuffer ! LPVOID lpBuffer
  integer(LPDWORD) lpcbBuffer ! LPDWORD lpcbBuffer
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetResourceInformation( &
        lpNetResource, &
        lpBuffer, &
        lpcbBuffer, &
        lplpSystem)
USE DFWINTY
  integer(DWORD) :: WNetGetResourceInformation ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetResourceInformationA' :: WNetGetResourceInformation
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
  integer(LPVOID) lpBuffer ! LPVOID lpBuffer
  integer(LPDWORD) lpcbBuffer ! LPDWORD lpcbBuffer
!DEC$ ATTRIBUTES REFERENCE :: lplpSystem
  integer(LPSTR) lplpSystem ! LPSTR* lplpSystem
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetUniversalName( &
        lpLocalPath, &
        dwInfoLevel, &
        lpBuffer, &
        lpBufferSize)
USE DFWINTY
  integer(DWORD) :: WNetGetUniversalName ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetUniversalNameA' :: WNetGetUniversalName
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: lpLocalPath
  character*(*) lpLocalPath ! LPCSTR lpLocalPath
  integer(DWORD) dwInfoLevel ! DWORD dwInfoLevel
  integer(LPVOID) lpBuffer ! LPVOID lpBuffer
  integer(LPDWORD) lpBufferSize ! LPDWORD lpBufferSize
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetUser( &
        lpName, &
        lpUserName, &
        lpnLength)
USE DFWINTY
  integer(DWORD) :: WNetGetUser ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetUserA' :: WNetGetUser
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpName
  character*(*) lpName ! LPCSTR lpName
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpUserName
  character*(*) lpUserName ! LPSTR lpUserName
  integer(LPDWORD) lpnLength ! LPDWORD lpnLength
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetProviderName( &
        dwNetType, &
        lpProviderName, &
        lpBufferSize)
USE DFWINTY
  integer(DWORD) :: WNetGetProviderName ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetProviderNameA' :: WNetGetProviderName
  integer(DWORD) dwNetType ! DWORD dwNetType
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpProviderName
  character*(*) lpProviderName ! LPSTR lpProviderName
  integer(LPDWORD) lpBufferSize ! LPDWORD lpBufferSize
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetNetworkInformation( &
        lpProvider, &
        lpNetInfoStruct)
USE DFWINTY
  integer(DWORD) :: WNetGetNetworkInformation ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetNetworkInformationA' :: WNetGetNetworkInformation
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpProvider
  character*(*) lpProvider ! LPCSTR lpProvider
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetInfoStruct
  TYPE (T_NETINFOSTRUCT) lpNetInfoStruct ! LPNETINFOSTRUCT lpNetInfoStruct
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION WNetGetLastError( &
        lpError, &
        lpErrorBuf, &
        nErrorBufSize, &
        lpNameBuf, &
        nNameBufSize)
USE DFWINTY
  integer(DWORD) :: WNetGetLastError ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'WNetGetLastErrorA' :: WNetGetLastError
  integer(LPDWORD) lpError ! LPDWORD lpError
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpErrorBuf
  character*(*) lpErrorBuf ! LPSTR lpErrorBuf
  integer(DWORD) nErrorBufSize ! DWORD nErrorBufSize
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNameBuf
  character*(*) lpNameBuf ! LPSTR lpNameBuf
  integer(DWORD) nNameBufSize ! DWORD nNameBufSize
 END FUNCTION
END INTERFACE
INTERFACE 
FUNCTION MultinetGetConnectionPerformance( &
        lpNetResource, &
        lpNetConnectInfoStruct)
USE DFWINTY
  integer(DWORD) :: MultinetGetConnectionPerformance ! DWORD
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'MultinetGetConnectionPerformanceA' :: MultinetGetConnectionPerformance
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetResource
  TYPE (T_NETRESOURCE) lpNetResource ! LPNETRESOURCEA lpNetResource
!DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNetConnectInfoStruct
  TYPE (T_NETCONNECTINFOSTRUCT) lpNetConnectInfoStruct ! LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
 END FUNCTION
END INTERFACE
!
end module mpr
!
!DEC$ ENDIF ! /* MPR_ */
