This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/convreg.h

84 lines
2.6 KiB
C++

// --convreg.h------------------------------------------------------------------
//
// Conversion registry class.
// Locates converters that are stored in DLLs from info stored in the
// registry.
//
// Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
//
// -----------------------------------------------------------------------------
#if !defined(_CONVREG_H)
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define _CONVREG_H
//$$--CEDKConvReg--------------------------------------------------------------
//
// DESCRIPTION: the conversion registry keeps track of conversion configuration.
//
// ---------------------------------------------------------------------------
class CEDKConvReg
{
public:
CEDKConvReg() ;
~CEDKConvReg() ;
HRESULT HrEDKInitialize() ;
HRESULT HrEDKSearchOpen(
IN LPCWSTR pszConversionPoint,
IN LPCWSTR pszContentClass,
OUT CDllEntryPoint * &pep) ;
HRESULT HrEDKSearchNext() ;
void EDKSearchClose() ;
void EDKDumpMappings() ;
// Deletes common member data (static class names list & DLL cache)
void EDKFree() ;
// function to retrieve a cached DLL handle
static inline HRESULT CEDKConvReg::HrGetDllHandle(
IN LPWSTR pszDllName, // name of DLL to get instance handle for
OUT HINSTANCE * phInst) // instance handle pointer
{
ASSERTERROR(ms_pDllCache != NULL, "Bad ms_pDllCache");
RETURN(((CDllCache *) CEDKConvReg::ms_pDllCache)->HrFind(pszDllName, phInst));
}
protected:
// helper functions
HRESULT HrEDKParseConfiguration() ;
HRESULT HrEDKRecordValues(
IN HKEY const hkEntryPoint,
IN LPCWSTR pszDll,
IN LPCWSTR pszEntryPoint) ;
VOID EDKSyntaxError(
IN LPWSTR pszDll,
IN LPWSTR pszEntryPoint,
IN LPWSTR pszClass,
IN LPWSTR pszOptions,
IN LPWSTR pszPoint) ;
// common values
BOOL m_bSyntaxError ; // true when a syntax error has occurred.
// common storage
static HKEY ms_hkConversions ; // handle to conversion data in registry
static CClassName * ms_pcnClasses ; // in memory cache of conversion data
static CDllCache * ms_pDllCache; // DLL instance handle cache
// cursor information
CDllEntryPoint ** m_ppep ; // where to store the entry point pointer
CClassName * m_pcnCurrentClass ; // current class.
LPCWSTR m_pszConversionPoint ; // name of conversion point.
LPCWSTR m_pszContentClass ; // name of class
} ;
#pragma option pop /*P_O_Pop*/
#endif