Freigeben über


IJournalReader-Schnittstelle

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
Journal.h (erfordert auch journal_i.c)
DLL
Journal.dll

Siehe auch

GUIDs für benutzerdefinierte Eigenschaften

ReadFromStream-Methode