windows-nt/Source/XPSP1/NT/base/wmi/bmoflocparser/inc/pbase/parseapi.h

89 lines
2.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//-----------------------------------------------------------------------------
//
// File: parseapi.h
// Copyright (C) 1994-1997 Microsoft Corporation
// All rights reserved.
//
// Main interface to a file parser DLL.
//
// Owner: MHotchin
//
//-----------------------------------------------------------------------------
#ifndef PARSEAPI_H
#define PARSEAPI_H
extern const IID IID_ILocParser;
extern const IID IID_ILocParser_20;
struct ParserInfo
{
CArray<PUID, PUID &> aParserIds;
CLString strDescription;
CLocExtensionList elExtensions;
CLString strHelp;
};
DECLARE_INTERFACE_(ILocParser, IUnknown)
{
//
// IUnknown standard interface.
//
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR*ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
//
// Standard Debugging interface.
//
STDMETHOD_(void, AssertValidInterface)(THIS) CONST_METHOD PURE;
//
// LocParser methods.
//
STDMETHOD(Init)(THIS_ IUnknown *) PURE;
STDMETHOD(CreateFileInstance)(THIS_ ILocFile *REFERENCE, FileType) PURE;
STDMETHOD_(void, GetParserInfo)(THIS_ ParserInfo REFERENCE)
CONST_METHOD PURE;
STDMETHOD_(void, GetFileDescriptions)(THIS_ CEnumCallback &)
CONST_METHOD PURE;
};
//
// Here for DOCUMENTATION only. Implementors should export the following
// functions from every Parser DLL.
//
static const char * szParserEntryPointName = "DllGetParserCLSID";
typedef void (STDAPICALLTYPE *PFNParserEntryPoint)(CLSID REFERENCE);
STDAPI_(void) DllGetParserCLSID(CLSID REFERENCE);
static const char * szParserRegisterEntryPointName = "DllRegisterParser";
typedef HRESULT (STDAPICALLTYPE *PFNParserRegisterEntryPoint)(void);
STDAPI DllRegisterParser(void);
static const char *szParserUnregisterEntryPointName = "DllUnregisterParser";
typedef HRESULT (STDAPICALLTYPE *PFNParserUnregisterEntryPoint)(void);
STDAPI DllUnregisterParser(void);
//
// Implementors also need to implement the DllGetClassObject function.
// An optional (but RECOMMENDED) function is DllCanUnloadNow.
// See the OLE 2 reference manual for details about these functions.
//
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);
STDAPI DllCanUnloadNow(void);
#endif // PARSEAPI_H