Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bietet Lesezugriff auf eine Windows Journal-Datei und gibt einen Stream zurück, der eine XML-Version des Dateiinhalts enthält.
Hinweis
Die Journallesekomponente kann keine Windows-Journaldateien lesen, die von Computern mit Windows 7 oder höher erstellt wurden. Die IJournalReader-Schnittstelle sollte als veraltet oder veraltet betrachtet und nicht verwendet werden.
Member
Die IJournalReader-Schnittstelle erbt von der IUnknown-Schnittstelle . IJournalReader verfügt auch über folgende Arten von Membern:
Methoden
Die IJournalReader-Schnittstelle verfügt über diese Methoden.
| Methode | BESCHREIBUNG |
|---|---|
| ReadFromStream | Übernimmt einen Stream in eine Journalnotizdatei und gibt einen XML-Stream zurück, der den Inhalt des Dokuments darstellt. |
Bemerkungen
Mit der JournalReader-Klasse können Sie einen Journal-Dokumentdatenstrom laden und einen XML-Stream empfangen, der den Inhalt darstellt. Sie können die Freihandeingabe konsstituieren, anzeigen und bearbeiten.
Beispiele
Im folgenden Beispiel eines Handlers für das Click-Ereignis einer Schaltfläche wird eine instance der JournalReader-Klasse erstellt und zum Lesen einer vorhandenen Journaldatei verwendet.
Hinweis
Die in diesem Beispiel aufgerufene DisplayXml-Methode wird nicht angezeigt. Die spezifische Implementierung einer solchen Methode hängt von den Anforderungen Ihrer Anwendung ab.
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;
}
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows XP Tablet PC Edition [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Nicht unterstützt |
| Header |
|
| DLL |
|