📄 plghand2.h
字号:
char* PropVal2, char* PropName3, char* PropVal3, REF(UINT32) unIndex); /************************************************************************ * Method: * IHXPlugin2Handler::FindReturnPluginUsingStrings * * Purpose: * Finds a plugin which matches the set of values given. A Plugin * instance is returned. * NOTE: that a max of two values may be given. */ STDMETHOD(FindPluginUsingStrings) (THIS_ char* PropName1, char* PropVal1, char* PropName2, char* PropVal2, char* PropName3, char* PropVal3, REF(IUnknown*) pUnk); /************************************************************************ * Method: * IHXPlugin2Handler::FindImplementationFromClassID * * Purpose: * Finds a CommonClassFactory plugin which supports the * ClassID given. An instance of the Class is returned. */ STDMETHOD(FindImplementationFromClassID) ( REFGUID GUIDClassID, REF(IUnknown*) pIUnknownInstance ); /************************************************************************ * Method: * IHXPlugin2Handler::Close * * Purpose: * A function which performs all of the functions of delete. * * */ STDMETHOD(Close) (THIS); /************************************************************************ * Method: * IHXPlugin2Handler::SetRequiredPlugins * * Purpose: * This function sets the required plugin list * * */ STDMETHOD(SetRequiredPlugins) (THIS_ const char** ppszRequiredPlugins); /************************************************************************ * Method: * IHXPlugin2HandlerEnumeratorInterface::GetNumPluginsSupporting * * Purpose: Required for the plugin enumerator. * * * */ STDMETHOD(GetNumPluginsSupporting) (THIS_ REFIID iid, REF(UINT32) nNumPlugins); /************************************************************************ * Method: * IHXPlugin2HandlerEnumeratorInterface::GetPluginIndexSupportingIID * * Purpose: Required for the plugin enumerator. * * * */ STDMETHOD(GetPluginIndexSupportingIID) (THIS_ REFIID iid, UINT32 nPluginIndex, REF(UINT32) nIndexOut); /************************************************************************ * Method: * IHXPlugin2HandlerEnumeratorInterface::AddSupportedIID * * Purpose: Required for the plugin enumerator. * * * */ STDMETHOD(AddSupportedIID) (THIS_ REFIID iid); /************************************************************************ * Method: * IHXPluginHandler3::RegisterContext * * Purpose: * Sets up the context without loading any plugin info * */ STDMETHOD( RegisterContext )( THIS_ IUnknown* pContext ); /************************************************************************ * Method: * IHXPluginHandler3::AddPluginMountPoint * * Purpose: * */ STDMETHOD( AddPluginMountPoint )( THIS_ const char* pName, UINT32 majorVersion, UINT32 minorVersion, IHXBuffer* pPath ); /************************************************************************ * Method: * IHXPluginHandler3::RefreshPluginMountPoint * * Purpose: * */ STDMETHOD( RefreshPluginMountPoint )( THIS_ const char* pName ); /************************************************************************ * Method: * IHXPluginHandler3::RemovePluginMountPoint * * Purpose: * */ STDMETHOD( RemovePluginMountPoint )( THIS_ const char* pName ); /************************************************************************ * Method: * IHXPluginHandler3::FindImplementationFromClassID * * Purpose: * Finds a CommonClassFactory plugin which supports the * ClassID given. An instance of the Class is returned. * The plugin instance is initialized with the specified * context */ STDMETHOD( FindImplementationFromClassID )( THIS_ REFGUID GUIDClassID, REF(IUnknown*) pIUnknownInstance, IUnknown* pIUnkOuter, IUnknown* pContext ); /************************************************************************ * Method: * IHXPluginHandler3::FindCLSIDFromName * * Purpose: * * Maps a text name to a CLSID based on information from * component plugins */ STDMETHOD( FindCLSIDFromName )( THIS_ const char* pName, REF(IHXBuffer*) pCLSID ); /************************************************************************ * Method: * IHXPluginHandler3::FindGroupOfPluginsUsingValues * * Purpose: * Builds a collection of plugins that match the criteria * */ STDMETHOD(FindGroupOfPluginsUsingValues)(THIS_ IHXValues* pValues, REF(IHXPluginSearchEnumerator*) pIEnumerator); /************************************************************************ * Method: * IHXPluginHandler3::FindGroupOfPluginsUsingStrings * * Purpose: * Builds a collection of plugins that match the criteria * */ STDMETHOD(FindGroupOfPluginsUsingStrings)(THIS_ char* PropName1, char* PropVal1, char* PropName2, char* PropVal2, char* PropName3, char* PropVal3, REF(IHXPluginSearchEnumerator*) pIEnumerator); /************************************************************************ * Method: * IHXPluginHandler3::GetPlugin * * Purpose: * Allocates a plugin based on index. Supports aggregation * */ STDMETHOD(GetPlugin)(THIS_ ULONG32 ulIndex, REF(IUnknown*) pIUnkResult, IUnknown* pIUnkOuter ); /************************************************************************ * Method: * IHXPluginHandler3::FindPluginUsingValues * * Purpose: * Allocates a plugin based on criteria. Supports aggregation * */ STDMETHOD(FindPluginUsingValues)(THIS_ IHXValues*, REF(IUnknown*) pIUnkResult, IUnknown* pIUnkOuter ); /************************************************************************ * Method: * IHXPluginHandler3::FindPluginUsingStrings * * Purpose: * Allocates a plugin based on criteria. Supports aggregation * */ STDMETHOD(FindPluginUsingStrings)(THIS_ char* PropName1, char* PropVal1, char* PropName2, char* PropVal2, char* PropName3, char* PropVal3, REF(IUnknown*) pIUnkResult, IUnknown* pIUnkOuter ); /************************************************************************ * Method: * IHXPluginHandler3::UnloadPluginFromClassID * * Purpose: * Finds a plugin from the classID and unloads it if it supports CanUnload2 * and returns TRUE in response to query */ STDMETHOD( UnloadPluginFromClassID )( THIS_ REFGUID GUIDClassID ); /************************************************************************ * Method: * IHXPluginHandler3::UnloadPackageByName * * Purpose: * finds a package from the name passed in and attempts to unload it. */ STDMETHOD (UnloadPackageByName) (const char* pName); //------------------------------------ IHXPluginDatabase interface methods STDMETHOD( AddPluginIndex ) ( THIS_ const char* pKeyName, EPluginIndexType indexType, BOOL bScanExisting ); STDMETHOD( RemovePluginIndex )( THIS_ const char* pKeyName ); STDMETHOD( FindPluginInfoViaIndex )( THIS_ const char* pKeyName, const void* pValue, IHXValues** ppIInfo ); STDMETHOD( FindPluginSetViaIndex )( THIS_ const char* pKeyName, const void* pValue, IHXPluginSearchEnumerator** ppIEnumerator ); STDMETHOD( CreatePluginViaIndex )( THIS_ const char* pKeyName, const void* pValue, IUnknown** ppIUnkPlugin, IUnknown* pIUnkOuter ); //------------------------------------ Class Methods Errors Stat(const char* pszFilename, struct stat* pStatBuffer); IHXBuffer* ChecksumFile(char* pszFileName, IHXBuffer* pPathBuffer); IHXBuffer* ConvertToAsciiString(char* pBuffer, UINT32 nBuffLen); IHXBuffer* GetPluginDir(); IHXPreferences* GetPreferences(); CHXSimpleList& GetCanUnload2DllList() { return( m_CanUnload2DllList ); } HX_RESULT FindGroupOfPluginsUsingStrings(char* PropName1, char* PropVal1, char* PropName2, char* PropVal2, char* PropName3, char* PropVal3, REF(CPluginEnumerator*) pEnumerator); HX_RESULT FindGroupOfPluginsUsingValues(IHXValues* pValues, REF(CPluginEnumerator*) pEnumerator); void ReportError( UINT8 severity, const char* pDLLName, const char* pDesc ); static const char* const zm_pszFileExtension; static const char* const zm_pszDirectorySeperator; static const char* const zm_pszValueSeperator; static const char* const zm_pszListStart; static const char* const zm_pszListEnd; static const char* const zm_pszValueSeperator2; static const char zm_cDirectorySeperator; static const char* const zm_pszKeyNameRegKey; static const char* const zm_pszRegKeySeperator;#if !defined(HELIX_CONFIG_NOSTATICS) static BOOL zm_bFasterPrefs;#else static const BOOL zm_bFasterPrefs;#endif HX_RESULT AddtoLRU(Plugin2Handler::PluginDLL* pDLL); HX_RESULT RemoveFromLRU(Plugin2Handler::PluginDLL* pDLL); HX_RESULT UpdateCache(); HX_RESULT ReloadPluginsNoPropagate(); HX_RESULT ReloadPluginsNoPropagate( PluginMountPoint* pMountPoint );private: static HX_RESULT VerifyChecksum_ (const char*); void UnloadDeadDLLs(void); IHXScheduler* m_pIScheduler; CallbackHandle m_hScheduler; enum {// kPingDuration = 1000 // USE ONLY FOR TESTING kPingDuration = 60000 // 60000ms = 1 minute }; IHXBuffer* GetDefaultPluginDir(); void WriteSupportedGUIDs(); HX_RESULT ConnectPluginToDLL(Plugin2Handler::Plugin * pPlugin); Errors LoadDLL(char* pszDllName, PluginMountPoint* pMountPoint); void LoadPluginsFromComponentDLL( Plugin2Handler::PluginDLL* pPluginDll, IHXComponentPlugin* pIIterator ); // Methods to determine out of data DLLs BOOL FindPlugin(const char* pFileName, UINT32 nDLLIndex, REF(UINT32) nIndex); HX_RESULT AddToValues(IHXValues*, char* pPropName, char* pPropVal, eValueTypes eValueType); UINT32 GetNumSupportedGUIDs(); HX_RESULT RemoveDLLFromGUIDSupportLists(const char* pszFileName); HX_RESULT GetGUIDForIndex(UINT32 nIndex, REF(CHXString) sGUID); HX_RESULT AddSupportForGUID(const char* pszGUID, PluginDLL* pDLL, UINT32 nIndexInDLL); BOOL GetPluginFileInfo( REF(char*) pszCurrentPos, REF(char*) pszName, REF(char*) pszCheckSum, REF(BOOL) bFactory, REF(int) nDLLSize, REF(int) nNumberPlugins); BOOL GetNameValuePair(REF(char*) pszCurrentPos, REF(char*) pszName, REF(char*) pszValue); BOOL GetPluginFileInfo(REF(char*) pszCurrentPos, REF(Plugin2Handler::Plugin*) pPlugin); BOOL GetNextSupportingFile(REF(char*) pszCurrentPos, REF(char*) pszFileName, REF(UINT32) index); BOOL GetGUIDInfo(REF(char*) pszCurrentPos, PluginMountPoint* pMountPoint, REF(char*) pszGUID, REF(CHXSimpleList*) pList);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -