Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil aliran ke file Catatan Jurnal dan mengembalikan aliran XML yang mewakili konten dokumen.
Catatan
Komponen Pembaca Jurnal tidak dapat membaca file Windows Journal yang dibuat oleh komputer yang menjalankan Windows 7 atau yang lebih baru. Antarmuka IJournalReader harus dianggap tidak digunakan lagi atau usang dan tidak boleh digunakan.
Sintaks
HRESULT ReadFromStream(
[in] IStream *pJournalFileStream,
[out, retval] IStream **ppXmlStream
);
Parameter
-
pJournalFileStream [in]
-
Objek IStream yang mewakili file Jurnal untuk dibaca.
-
ppXmlStream [out, retval]
-
Penunjuk ke alamat objek IStream yang akan menerima aliran XML yang dibuat dengan membaca file Jurnal.
Menampilkan nilai
Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Keterangan
Aliran digunakan untuk menghindari akses langsung ke sistem file dan untuk memungkinkan pilihan metode penguraian XML untuk digunakan.
Contoh
Contoh handler berikut untuk peristiwa Klik tombol membuat instans antarmuka Antarmuka IJournalReader dan menggunakannya untuk membaca file Jurnal yang ada.
void CJntlReaderMFCDlg::OnBnClickedButton1()
{
IStream* pJntStream;
IStream* pXmlStream;
IJournalReader* pJntReader;
HRESULT hr;
CString szFileName = "";
static char BASED_CODE szFilter[] =
"Journal files (*.jnt)|*.jnt|All files (*.*)|*.*";
CFileDialog* fileDialog = new CFileDialog(TRUE, "*.jnt", NULL,
OFN_FILEMUSTEXIST, szFilter, this);
// Get the filename from the user by using a File Open dialog
if (IDOK == fileDialog->DoModal())
{
szFileName = fileDialog->GetPathName();
// Read a JNT file into a memory buffer
HANDLE hFile = CreateFile(szFileName.GetBuffer(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE != hFile)
{
// 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)
{
// Create an IStream that points to the buffer
hr = CreateStreamOnHGlobal(hGlobal, FALSE, &pJntStream);
if (SUCCEEDED(hr))
{
// Create a JournalReader object
hr = CoCreateInstance(CLSID_JournalReader, NULL, CLSCTX_ALL,
IID_IJournalReader, (void**)&pJntReader);
if (SUCCEEDED(hr))
{
// Read in the JNT file by using the JournalReader
hr = pJntReader->ReadFromStream(pJntStream, &pXmlStream);
// Display results
if (SUCCEEDED(hr))
{
DisplayXml(pXmlStream);
}
// Clean up
pXmlStream->Release();
pJntReader = NULL;
pJntStream->Release();
}
}
}
GlobalUnlock(hGlobal);
}
GlobalFree(hGlobal);
}
}
}
}
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung |
Windows XP Tablet PC Edition [hanya aplikasi desktop] |
| Server minimum yang didukung |
Tidak ada yang didukung |
| Header |
|
| DLL |
|