mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
A51Exp.h
|
|
|
|
Abstract:
|
|
|
|
Exports the repository into a interchange format that can easily be re-imported.
|
|
|
|
History:
|
|
|
|
08-Dec-2000 paulall Created.
|
|
|
|
--*/
|
|
|
|
#define A51_EXPORT_FILE_START_TAG "a51exp1"
|
|
#define A51_EXPORT_NAMESPACE_TAG 0x00000001
|
|
#define A51_EXPORT_CLASS_TAG 0x00000002
|
|
#define A51_EXPORT_INST_TAG 0x00000003
|
|
#define A51_EXPORT_CLASS_END_TAG 0x00000005
|
|
#define A51_EXPORT_NAMESPACE_END_TAG 0x00000006
|
|
#define A51_EXPORT_FILE_END_TAG DWORD(-1)
|
|
|
|
class CLifeControl;
|
|
|
|
class A51Export
|
|
{
|
|
private:
|
|
HANDLE m_hFile;
|
|
CRepository *m_pRepository;
|
|
CLifeControl* m_pControl;
|
|
|
|
protected:
|
|
|
|
HRESULT ExportHeader();
|
|
HRESULT ExportNamespace(const wchar_t *wszNamespace);
|
|
HRESULT ExportClass(CNamespaceHandle *pNs, const wchar_t *wszClassName, _IWmiObject *pClass);
|
|
HRESULT ExportInstance(_IWmiObject *pInstance);
|
|
|
|
HRESULT ExportChildNamespaces(CNamespaceHandle *pNs, const wchar_t *wszNamespace);
|
|
HRESULT ExportChildClasses(CNamespaceHandle *pNs, const wchar_t *wszClassName);
|
|
HRESULT ExportClassInstances(CNamespaceHandle *pNs, const wchar_t *wszClassName);
|
|
|
|
HRESULT WriteBufferWithLength(DWORD dwBufferSize, void *pBuffer);
|
|
HRESULT WriteObjectType(DWORD dwTag);
|
|
HRESULT WriteObjectBlob(_IWmiObject *pObject);
|
|
|
|
public:
|
|
HRESULT Export(const wchar_t *wszFilename, DWORD dwFlags, CRepository *pRepository);
|
|
A51Export(CLifeControl* pControl);
|
|
~A51Export();
|
|
};
|