Monikers and CHM storages
|
От: |
Nikolas
|
|
| Дата: | 18.08.01 12:14 |
|
Оценка: |
|
Hello All!
Есть "маленький" вопрос.
Имеется *.chm файл. Как известно доступ к некоторому объекту этого
файла, например из IE, осуществляется так:
ms-its:G:\Samples.chm:/mainpage.html
Программно до него можно достучаться следующим образом:
HRESULT hr = S_OK; OLECHAR szwName[256];
MultiByteToWideChar(CP_ACP, 0, "ms-its:G:\\Samples.chm:/mainpage.html", -1, szwName, 256);
// Ask the system for a URL Moniker
IMoniker* pIMoniker;
hr= CreateURLMoniker(NULL, (LPWSTR)szwName, &pIMoniker);
if (SUCCEEDED(hr))
{
// Get the IPersistMoniker interface
IPersistMoniker* pPMk;
hr= m_pObj->QueryInterface(IID_IPersistMoniker,(void **)&pPMk);
if (SUCCEEDED(hr))
{
IBindCtx *pBCtx;
hr = CreateBindCtx(0, &pBCtx);
if (SUCCEEDED(hr))
{
// Call Load on the IPersistMoniker
hr= pPMk->Load(FALSE, pIMoniker, pBCtx, STGM_READ);
pBCtx->Release();
}
ReleaseInterface(pPMk);
}
ReleaseInterface(pIMoniker);
}
m_pObj — это instance CLSID_TriEditDocument.
Вопрос в следующем, каким образом можно поместить назад в Samples.chm измененные
данные объекта mainframe.html? И возможно ли это вообще?
Заранее признателен.
С Уважением, Николай.
Пока на собственное сообщение не было ответов, его можно удалить.