/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1993 **/ /**********************************************************************/ /* uintrpl.hxx RPL Server handle wrappers FILE HISTORY: JonN 19-Jul-1993 templated from User object JonN 10-Aug-1993 CODE REVIEW: DavidHov RPL_SERVER derived from REF_COUNT */ #ifndef _UINTRPL_HXX_ #define _UINTRPL_HXX_ #include "string.hxx" #include "refcount.hxx" extern "C" { #include "fakeapis.h" // BUGBUG replace // needed for RPL_HANDLE definition } /**********************************************************\ NAME: RPL_SERVER (rplsrv) SYNOPSIS: Wrapper for RPL server handle. cRefCount is provided to support the RPL_SERVER_REF class; RPL_SERVER does not manipulate it directly. This is a private class, only RPL_SERVER_REF can access it. INTERFACE: (public) RPL_SERVER(): constructor ~RPL_SERVER(): destructor PARENT: REF_COUNT HISTORY: JonN 19-Jul-1993 Created \**********************************************************/ class RPL_SERVER : public REF_COUNT { friend class RPL_SERVER_REF; private: RPL_HANDLE _rplhandle; NLS_STR _nlsServer; RPL_SERVER( const TCHAR * pszServer = NULL ); ~RPL_SERVER(); } ; /**********************************************************\ NAME: RPL_SERVER_REF (rplsrvref) SYNOPSIS: Reference to a RPL_SERVER. More than one RPL_SERVER_REF can refer to the same RPL_SERVER. INTERFACE: (public) RPL_SERVER(): constructor ~RPL_SERVER(): destructor TestHandle: Tests whether the status parameter returned from an API call indicates an invalid handle. If the handle was invalid, TestHandle will attempt to replace the handle. Returns TRUE if the handle was successfully replaced and the API should be repeated. If handle replacement fails, returns FALSE with the reason for failure in *pstatus. PARENT: BASE HISTORY: JonN 19-Jul-1993 Created JonN 03-Aug-1993 Added handle-replacement technology \**********************************************************/ class RPL_SERVER_REF : public BASE { private: RPL_SERVER * _prplsrv; VOID ReplaceHandle( RPL_SERVER * prplsrv ); RPL_HANDLE QueryHandle() { ASSERT( _prplsrv != NULL && _prplsrv->QueryError() == NULL ); return _prplsrv->_rplhandle; } public: RPL_SERVER_REF( const TCHAR * pszServer = NULL ); RPL_SERVER_REF( RPL_SERVER_REF & rplsrvref ); ~RPL_SERVER_REF(); const TCHAR * QueryServer( void ) const { ASSERT( _prplsrv != NULL ); return _prplsrv->_nlsServer.QueryPch(); } BOOL TestHandle( NET_API_STATUS * pstatus ); VOID CloneFrom( RPL_SERVER_REF & rplsrvref ) { ReplaceHandle( rplsrvref._prplsrv); } APIERR SetupAction( IN DWORD fAction ); APIERR ConfigEnum( IN LPCTSTR AdapterName, IN DWORD InfoLevel, OUT LPBYTE * ConfigArray, IN DWORD PrefMaxLength, OUT LPDWORD EntriesRead, OUT LPDWORD TotalEntries, OUT LPDWORD ResumeHandle ); APIERR ProfileEnum( IN LPCTSTR AdapterName, IN DWORD InfoLevel, OUT LPBYTE * ProfileArray, IN DWORD PrefMaxLength, OUT LPDWORD EntriesRead, OUT LPDWORD TotalEntries, OUT LPDWORD ResumeHandle ); APIERR ProfileGetInfo( IN LPCTSTR ProfileName, IN DWORD InfoLevel, OUT LPBYTE * PointerToBuffer ); APIERR ProfileSetInfo( IN LPCTSTR ProfileName, IN DWORD InfoLevel, IN LPBYTE Buffer, OUT LPDWORD ErrorParameter OPTIONAL ); APIERR ProfileAdd( IN DWORD InfoLevel, IN LPBYTE Buffer, OUT LPDWORD ErrorParameter OPTIONAL ); APIERR ProfileDel( IN LPCTSTR ProfileName ); APIERR ProfileClone( IN LPCTSTR SourceProfileName, IN LPCTSTR TargetProfileName, IN LPCTSTR TargetProfileComment ); APIERR AdapterEnum( IN DWORD InfoLevel, OUT LPBYTE * AdapterArray, IN DWORD PrefMaxLength, OUT LPDWORD EntriesRead, OUT LPDWORD TotalEntries, OUT LPDWORD ResumeHandle ); APIERR AdapterDel( IN LPCTSTR AdapterName ); APIERR WkstaEnum( IN LPCTSTR ProfileName, IN DWORD InfoLevel, OUT LPBYTE * PointerToBuffer, IN DWORD PrefMaxLength, OUT LPDWORD EntriesRead, OUT LPDWORD TotalEntries, OUT LPDWORD ResumeHandle ); APIERR WkstaGetInfo( IN LPCTSTR WkstaName, IN DWORD InfoLevel, OUT LPBYTE * Buffer ); APIERR WkstaSetInfo( IN LPCTSTR WkstaName, IN DWORD InfoLevel, IN LPBYTE Buffer, OUT LPDWORD ErrorParameter OPTIONAL ); APIERR WkstaAdd( IN DWORD InfoLevel, IN LPBYTE Buffer, OUT LPDWORD ErrorParameter OPTIONAL ); APIERR WkstaDel( IN LPCTSTR WkstaName ); APIERR WkstaClone( IN LPCTSTR SourceWkstaName, IN LPCTSTR TargetWkstaName, IN LPCTSTR TargetWkstaComment, IN LPCTSTR TargetAdapterName, IN DWORD TargetWkstaIpAddress ); APIERR SecuritySet( IN LPCTSTR WkstaName, IN DWORD WkstaRid, IN DWORD RPLUSERrid ); } ; #endif // _UINTRPL_HXX_