00001 //============================================================================= 00002 // filename: RmRegistryManager.h 00003 // 00004 // ATI Research, Inc. 00005 // 3D Application Research Group 00006 // 00007 // description: RenderMonkey Registry Manager declaration 00008 // 00009 //============================================================================= 00010 // (C) 2004 ATI Research, Inc. All rights reserved. 00011 //============================================================================= 00012 00013 #ifndef _RM_CORE_REGISTRY_MANAGER_H_ 00014 #define _RM_CORE_REGISTRY_MANAGER_H_ 00015 00016 #include <Core/RmTypes.h> 00017 #include <Core/RmDefines.h> 00018 00019 //============================================================================= 00031 //============================================================================= 00032 class RM_API IRmRegistryManager 00033 { 00034 public : 00035 //-------------------------------------------------------------------------- 00040 //-------------------------------------------------------------------------- 00041 IRmRegistryManager(); 00042 00043 //-------------------------------------------------------------------------- 00048 //-------------------------------------------------------------------------- 00049 virtual ~IRmRegistryManager(); 00050 00051 //-------------------------------------------------------------------------- 00070 //-------------------------------------------------------------------------- 00071 virtual RmRegistryBranch* GetRegistryRootBranch( RmNode* pRmNode ) = 0; 00072 00073 //-------------------------------------------------------------------------- 00080 //-------------------------------------------------------------------------- 00081 virtual const RM_TCHAR *GetRegistryRootPath(void) = 0; 00082 00083 //-------------------------------------------------------------------------- 00089 //-------------------------------------------------------------------------- 00090 virtual RmRegistryBranch* GetGlobalRegistryRootBranch( RmRegistryBranch *pGlobalRegistryBranch ) = 0; 00091 00092 //-------------------------------------------------------------------------- 00098 //-------------------------------------------------------------------------- 00099 virtual const RM_TCHAR *GetRootPlugInBranchPath(void) = 0; 00100 00101 //-------------------------------------------------------------------------- 00108 //-------------------------------------------------------------------------- 00109 virtual RmRegistryBranch* GetLocalRegistryBranch() = 0; 00110 00111 //-------------------------------------------------------------------------- 00117 //-------------------------------------------------------------------------- 00118 virtual const RM_TCHAR* GetLocalRegistryBranchPath (void) = 0; 00119 00120 //-------------------------------------------------------------------------- 00128 //-------------------------------------------------------------------------- 00129 virtual RmRegistryBranch* GetLocalRegistryRootPlugInBranch(void) = 0; 00130 00131 //-------------------------------------------------------------------------- 00138 //-------------------------------------------------------------------------- 00139 virtual RmRegistryBranch* GetGlobalRegistryRootPlugInBranch(void) = 0; 00140 00141 //-------------------------------------------------------------------------- 00150 //-------------------------------------------------------------------------- 00151 virtual RmRegistryBranch* GetLocalRegistryPlugInUserBranch( const RM_TCHAR *strUserPlugInBranchName ) = 0; 00152 00153 //-------------------------------------------------------------------------- 00161 //-------------------------------------------------------------------------- 00162 virtual RmRegistryBranch* GetLocalRegistryBranchForPlugIn( const RM_TCHAR *strPlugInBranchName ) = 0; 00163 00164 //-------------------------------------------------------------------------- 00189 //-------------------------------------------------------------------------- 00190 virtual bool LocalPlugInRegistryProcessNodeNameChange( const RM_TCHAR *strPlugInBranchName, 00191 const RM_TCHAR *strPlugInRepositoryName, 00192 const RM_TCHAR *strRegistryName, 00193 RmNode *pNode, 00194 RmStringT *pStrOldName ) = 0; 00195 00196 //-------------------------------------------------------------------------- 00205 //-------------------------------------------------------------------------- 00206 virtual bool CreateLocalPlugInRegistryBranch( const RM_TCHAR *strPlugInBranchName ) = 0; 00207 00208 //-------------------------------------------------------------------------- 00218 //-------------------------------------------------------------------------- 00219 virtual bool DeleteAllEntriesInLocalPlugInRegistryBranch ( const RM_TCHAR *strPlugInBranchName, 00220 const RM_TCHAR *strPlugInRepositoryName, 00221 const RM_TCHAR *strRegistryName ) = 0; 00222 00223 //-------------------------------------------------------------------------- 00237 //-------------------------------------------------------------------------- 00238 virtual RmNode* GetRegistryNode( RmNode *pRegistryBranch, const RM_TCHAR *strRegistryPath ) = 0; 00239 00240 //-------------------------------------------------------------------------- 00241 // RenderMonkey provides ability to save window placement data about user interface windows associated 00242 // with a particular node in the local registry branch. These methods access a particular branch in 00243 // the local registry, pointed to by 'pNodeRegistryBranch'. The user of these methods is free to 00244 // control association of the actual node with the registry branch where the information would be saved, 00245 // however, typically, the plug-in would have a plug-in specific branch under which it can organize 00246 // window placement information for each node in a repository for easier access. 00247 //-------------------------------------------------------------------------- 00248 00249 //-------------------------------------------------------------------------- 00259 //-------------------------------------------------------------------------- 00260 virtual bool GetWindowPlacementData( RmRegistryBranch *pNodeRegistryBranch, RmWindowPlacementData &windowPlacementData ) = 0; 00261 00262 //-------------------------------------------------------------------------- 00274 //-------------------------------------------------------------------------- 00275 virtual bool SaveWindowPlacementData( RmRegistryBranch *pNodeRegistryBranch, HWND hWnd ) = 0; 00276 00277 //-------------------------------------------------------------------------- 00287 //-------------------------------------------------------------------------- 00288 virtual bool SaveWindowPlacementData( RmRegistryBranch *pNodeRegistryBranch, const RmWindowPlacementData &windowPlacementData ) = 0; 00289 00290 //-------------------------------------------------------------------------- 00299 //-------------------------------------------------------------------------- 00300 virtual bool CreateWindowPlacementData( HWND hWnd, RmWindowPlacementData &windowPlacementData ) = 0; 00301 00302 //-------------------------------------------------------------------------- 00312 //-------------------------------------------------------------------------- 00313 virtual RmRegistryBranch* GetGlobalRegistryUserDefinedBranch( const RM_TCHAR *strRegistryName ) = 0; 00314 00315 //-------------------------------------------------------------------------- 00324 //-------------------------------------------------------------------------- 00325 virtual void GlobalRegistrySaveIntegerNode( RmRegistryBranch *pGeneralRegistryBranch, 00326 const RM_TCHAR *strNodeName, 00327 int nValue ) = 0; 00328 00329 //-------------------------------------------------------------------------- 00339 //-------------------------------------------------------------------------- 00340 virtual int GlobalRegistryLoadIntegerNode( RmRegistryBranch *pGeneralRegistryBranch, 00341 const RM_TCHAR *strNodeName, 00342 int nDefaultValue ) = 0; 00343 00344 //-------------------------------------------------------------------------- 00353 //-------------------------------------------------------------------------- 00354 virtual void GlobalRegistrySaveFloatNode( RmRegistryBranch *pGeneralRegistryBranch, 00355 const RM_TCHAR *strNodeName, 00356 float fValue ) = 0; 00357 00358 //-------------------------------------------------------------------------- 00368 //-------------------------------------------------------------------------- 00369 virtual float GlobalRegistryLoadFloatNode( RmRegistryBranch *pGeneralRegistryBranch, 00370 const RM_TCHAR *strNodeName, 00371 float fDefaultValue ) = 0; 00372 00373 //-------------------------------------------------------------------------- 00382 //-------------------------------------------------------------------------- 00383 virtual void GlobalRegistrySaveStringNode( RmRegistryBranch *pGeneralRegistryBranch, 00384 const RM_TCHAR *strNodeName, 00385 const RM_TCHAR *pStrValue ) = 0; 00386 00387 //-------------------------------------------------------------------------- 00397 //-------------------------------------------------------------------------- 00398 virtual void GlobalRegistryLoadStringNode( RmRegistryBranch *pGeneralRegistryBranch, 00399 const RM_TCHAR *strNodeName, 00400 const RM_TCHAR *pDefaultString, 00401 RM_TCHAR *strResult ) = 0; 00402 00403 00404 }; // End of IRmRegistryManager class declaration 00405 00406 #endif
1.3.6