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.
84 lines
2.2 KiB
84 lines
2.2 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1999 - 1999
|
|
//
|
|
// File: helpdoc.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef _HELPDOC_H
|
|
#define _HELPDOC_H
|
|
|
|
#pragma warning(disable:4786)
|
|
|
|
#include "tstring.h"
|
|
#include "hcolwrap.h"
|
|
#include "collect.h"
|
|
|
|
using namespace std;
|
|
|
|
DEFINE_COM_SMARTPTR(IHHCollectionWrapper); // IHHCollectionWrapperPtr
|
|
|
|
class CHelpCollectionEntry
|
|
{
|
|
public:
|
|
wstring m_strHelpFile;
|
|
wstring m_strCLSID;
|
|
|
|
CHelpCollectionEntry() {}
|
|
CHelpCollectionEntry(LPOLESTR pwzHelpFile, const CLSID& clsid);
|
|
|
|
bool operator==(const CHelpCollectionEntry& other) const
|
|
{ return (m_strHelpFile == other.m_strHelpFile); }
|
|
|
|
bool operator< (const CHelpCollectionEntry& other) const
|
|
{ return (m_strHelpFile < other.m_strHelpFile); }
|
|
};
|
|
|
|
typedef map<CLSID, wstring> EntryMap;
|
|
typedef pair<const CLSID, wstring> EntryPair;
|
|
typedef vector<EntryPair*> EntryPtrList;
|
|
typedef set<CHelpCollectionEntry> HelpCollectionEntrySet;
|
|
|
|
|
|
class CHelpDoc
|
|
{
|
|
|
|
public:
|
|
CHelpDoc() {};
|
|
|
|
HRESULT Initialize(HELPDOCINFO* pDocInfo);
|
|
|
|
BOOL IsHelpFileValid();
|
|
HRESULT CreateHelpFile();
|
|
void DeleteHelpFile();
|
|
HRESULT UpdateHelpFile(HELPDOCINFO* pNewDocInfo);
|
|
LPCTSTR GetFilePath() { return m_szFilePath; }
|
|
|
|
static SC CHelpDoc::ScRedirectHelpFile (
|
|
WTL::CString& strHelpFile, /* I/O:help file (maybe redirected) */
|
|
LANGID& langid); /* O:language ID of output help file */
|
|
|
|
private:
|
|
IHHCollectionWrapperPtr m_spCollection;
|
|
HELPDOCINFO* m_pDocInfo;
|
|
EntryMap m_entryMap;
|
|
EntryPtrList m_entryList;
|
|
MMC_ATL::CRegKey m_keySnapIns;
|
|
TCHAR m_szFilePath[MAX_PATH];
|
|
|
|
private:
|
|
HRESULT BuildFilePath();
|
|
HRESULT CreateSnapInList();
|
|
HRESULT AddFileToCollection(
|
|
LPCWSTR pszTitle,
|
|
LPCWSTR pszFilePath,
|
|
BOOL bAddFolder );
|
|
void AddSnapInToList(const CLSID& rclsid);
|
|
|
|
};
|
|
|
|
|
|
#endif //_HELPDOC_H
|