IJournalReader インターフェイス
Windows ジャーナル ファイルへの読み取りアクセスを提供し、ファイルの内容の XML バージョンを含むストリームを返します。
Note
ジャーナル リーダー コンポーネントは、Windows 7 以降を実行しているマシンによって作成された Windows ジャーナル ファイルを読み取ることができません。 IJournalReader インターフェイスは、非推奨または廃止されたものと見なす必要があり、使用しないでください。
メンバー
IJournalReader インターフェイスは、IUnknown インターフェイスから継承されます。 IJournalReader には、次の種類のメンバーもあります。
メソッド
IJournalReader インターフェイスには、これらのメソッドがあります。
メソッド | 説明 |
---|---|
ReadFromStream | ジャーナル ノート ファイルへのストリームを取得し、ドキュメントの内容を表す XML ストリームを返します。 |
解説
JournalReader クラスを使用すると、Journal ドキュメント ストリームを読み込み、コンテンツを表す XML ストリームを受信できます。 インクの再構成、表示、操作を行うことができます。
例
ボタンの Click イベントのハンドラーの次の例では、 JournalReader クラスのインスタンスを作成し、それを使用して既存の Journal ファイルを読み取ります。
Note
この例から呼び出された DisplayXml メソッドは表示されません。 このようなメソッドの具体的な実装は、アプリケーションのニーズによって異なります。
void CJntlReaderMFCDlg::OnBnClickedButton1()
{
static TCHAR BASED_CODE szFilter[] =
_T("Journal files (*.jnt)|*.jnt|All files (*.*)|*.*");
CFileDialog* fileDialog = new CFileDialog(TRUE, _T("*.jnt"), NULL,
OFN_FILEMUSTEXIST, szFilter, this);
// Get the filename from the user via a File Open dialog
if (fileDialog != NULL &&
fileDialog->DoModal() == IDOK)
{
CString strFileName = fileDialog->GetPathName();
// Read a JNT file into a memory buffer
HANDLE hFile = CreateFile(strFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
// Allocate memory to hold the file contents
DWORD dwFileSize = GetFileSize(hFile, NULL);
HGLOBAL hGlobal = GlobalAlloc(GHND, dwFileSize);
if (hGlobal != NULL)
{
LPBYTE pData = (LPBYTE)GlobalLock(hGlobal);
if (pData != NULL)
{
DWORD dwRead;
// Read the Journal file into the pData buffer
if (ReadFile(hFile, pData, dwFileSize, &dwRead, NULL) &&
(dwRead == dwFileSize))
{
HRESULT hr;
IStream* pJntStream;
// Create an IStream that points to the buffer
hr = CreateStreamOnHGlobal(hGlobal, FALSE, &pJntStream);
if (SUCCEEDED(hr))
{
IJournalReader* pJntReader;
// Create a JournalReader object
hr = CoCreateInstance(CLSID_JournalReader, NULL, CLSCTX_ALL,
IID_IJournalReader, (void**)&pJntReader);
if (SUCCEEDED(hr))
{
IStream* pXmlStream;
// Read in the JNT file via the JournalReader
hr = pJntReader->ReadFromStream(pJntStream, &pXmlStream);
if (SUCCEEDED(hr))
{
// Display results
DisplayXml(pXmlStream);
// Clean up
pXmlStream->Release();
}
pJntReader->Release();
}
pJntStream->Release();
}
}
GlobalUnlock(hGlobal);
}
GlobalFree(hGlobal);
}
CloseHandle(hFile);
}
delete fileDialog;
}
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP タブレット PC エディション [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
ヘッダー |
|
[DLL] |
|