//================================================================= // // UserEnvApi.h // // Copyright (c) 1999-2001 Microsoft Corporation, All Rights Reserved // //================================================================= #ifndef _UserEnvAPI_H_ #define _UserEnvAPI_H_ /****************************************************************************** * #includes to Register this class with the CResourceManager. *****************************************************************************/ #include "DllWrapperBase.h" extern const GUID g_guidUserEnvApi; extern const TCHAR g_tstrUserEnv[]; /****************************************************************************** * Function pointer typedefs. Add new functions here as required. *****************************************************************************/ typedef BOOL (WINAPI *PFN_UserEnv_GET_DISK_FREE_SPACE_EX) ( LPCTSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes ); typedef BOOL ( WINAPI *PFN_UserEnv_CREATEENVIRONMENTBLOCK ) ( OUT LPVOID *lpEnvironment, IN HANDLE hToken, IN BOOL bInherit ); typedef BOOL ( WINAPI *PFN_UserEnv_DESTROYENVIRONMENTBLOCK ) ( IN LPVOID lpEnvironment ); /****************************************************************************** * Wrapper class for UserEnv load/unload, for registration with CResourceManager. ******************************************************************************/ class __declspec(uuid("3CA401C6-D477-11d2-B35E-00104BC97924")) CUserEnvApi : public CDllWrapperBase { private: // Member variables (function pointers) pointing to UserEnv functions. // Add new functions here as required. PFN_UserEnv_DESTROYENVIRONMENTBLOCK m_pfnDestroyEnvironmentBlock ; PFN_UserEnv_CREATEENVIRONMENTBLOCK m_pfnCreateEnvironmentBlock ; public: // Constructor and destructor: CUserEnvApi ( LPCTSTR a_tstrWrappedDllName ) ; ~CUserEnvApi () ; // Inherrited initialization function. virtual bool Init(); // Member functions wrapping UserEnv functions. // Add new functions here as required: BOOL CreateEnvironmentBlock ( OUT LPVOID *lpEnvironment, IN HANDLE hToken, IN BOOL bInherit ); BOOL DestroyEnvironmentBlock ( IN LPVOID lpEnvironment ); }; #endif