Interface IJournalReader
fournit un accès en lecture à un fichier Journal Windows, en retournant un flux contenant une version XML du contenu du fichier.
Notes
le composant de lecture du journal ne peut pas lire les fichiers journaux Windows créés par des ordinateurs exécutant Windows 7 ou une version ultérieure. L’interface IJournalReader doit être considérée comme dépréciée ou obsolète et ne doit pas être utilisée.
Membres
L’interface IJournalReader hérite de l’interface IUnknown . IJournalReader a également les types de membres suivants :
Méthodes
L’interface IJournalReader possède ces méthodes.
| Méthode | Description |
|---|---|
| ReadFromStream | Prend un flux dans un fichier de note du journal et retourne un flux de données XML représentant le contenu du document. |
Remarques
La classe JournalReader vous permet de charger un flux de document de journal et de recevoir un flux XML représentant le contenu. Vous pouvez reconstituer, afficher et manipuler l’encre.
Exemples
L’exemple suivant d’un gestionnaire pour l’événement Click d’un bouton crée une instance de la classe JournalReader et l’utilise pour lire un fichier journal existant.
Notes
La méthode DisplayXml appelée depuis cet exemple n’est pas affichée. L’implémentation spécifique d’une telle méthode dépend des besoins de votre application.
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;
}
}
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows Applications de bureau XP Édition Tablet PC [ uniquement] |
| Serveur minimal pris en charge |
Aucun pris en charge |
| En-tête |
|
| DLL |
|