다음을 통해 공유


IJournalReader 인터페이스

파일 내용의 XML 버전이 포함된 스트림을 반환하는 Windows Journal 파일에 대한 읽기 권한을 제공합니다.

참고

저널 판독기 구성 요소는 Windows 7 이상을 실행하는 컴퓨터에서 만든 Windows 저널 파일을 읽을 수 없습니다. IJournalReader 인터페이스는 더 이상 사용되지 않거나 사용되지 않는 것으로 간주되어야 하며 사용하지 않아야 합니다.

멤버

IJournalReader 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IJournalReader 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IJournalReader 인터페이스에는 이러한 메서드가 있습니다.

메서드 Description
ReadFromStream 스트림을 Journal Note 파일로 가져와서 문서의 내용을 나타내는 XML 스트림을 반환합니다.

설명

JournalReader 클래스를 사용하면 저널 문서 스트림을 로드하고 내용을 나타내는 XML 스트림을 받을 수 있습니다. 잉크를 재구성, 표시 및 조작할 수 있습니다.

예제

단추의 Click 이벤트에 대한 처리기의 다음 예제에서는 JournalReader 클래스의 instance 만들고 이를 사용하여 기존 저널 파일을 읽습니다.

참고

이 예제에서 호출된 DisplayXml 메서드는 표시되지 않습니다. 이러한 메서드의 특정 구현은 애플리케이션의 요구 사항에 따라 달라집니다.

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;
  }
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP 태블릿 PC 버전 [데스크톱 앱만 해당]
지원되는 최소 서버
지원되는 버전 없음
헤더
Journal.h(journal_i.c도 필요)
DLL
Journal.dll

추가 정보

사용자 지정 속성 GUID

ReadFromStream 메서드