Interface IJournalReader
Fornece acesso de leitura a um arquivo do Windows Journal, retornando um fluxo que contém uma versão XML do conteúdo do arquivo.
Observação
O componente Leitor de Diário não pode ler arquivos do Windows Journal criados por computadores que executam o Windows 7 ou posterior. A interface IJournalReader deve ser considerada preterida ou obsoleta e não deve ser usada.
Membros
A interface IJournalReader herda da interface IUnknown . O IJournalReader também tem estes tipos de membros:
Métodos
A interface IJournalReader tem esses métodos.
Método | Descrição |
---|---|
ReadFromStream | Leva um fluxo para um arquivo de Anotação do Diário e retorna um fluxo XML que representa o conteúdo do documento. |
Comentários
A classe JournalReader permite carregar um fluxo de documentos do Diário e receber um fluxo XML que representa o conteúdo. Você pode reconstituir, exibir e manipular a tinta.
Exemplos
O exemplo a seguir de um manipulador para um evento Click de um botão cria uma instância da classe JournalReader e a usa para ler um arquivo de Diário existente.
Observação
O método DisplayXml chamado deste exemplo não é mostrado. A implementação específica desse método depende das necessidades do aplicativo.
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;
}
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows XP Tablet PC Edition [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Nenhum compatível |
Cabeçalho |
|
DLL |
|