1

epub ファイルの html コンテンツを表示したい。epubファイルの読み取りと処理に問題はありません。私の問題は、結果の HTML を表示する方法ですか? C# で WebBrowser コントロールを使用できることはわかっています。しかし、問題は、Web ブラウザーのコンテンツを外部アプリケーションから読み取ることができることです。独自の DRM を使用して、epub ファイルの暗号化と復号化を行っています。しかし、本のコンテンツをビューからコピーしたくないのです。

私はこのコード(デルファイで書かれた)を持っており、任意のアプリケーションから、つまりコントロールからhtmlドキュメントとコンテンツを取得します。

function GetIEDocumentFromHWND(WHandle: HWND;
  var doc: IHTMLDocument2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  MSG: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
  IE: IWebbrowser2;

begin
  hInst := LoadLibrary('Oleacc.dll');
  @ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
  if @ObjectFromLresult <> nil then begin
    try
      MSG := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
      doc:=pDoc;
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
IWebbrowser2, IE);
    finally
      FreeLibrary(hInst);
    end;
  end;
end;

このコードは、webbrowser コントロールの使用が適切な解決策ではないことを証明しています。それから私は何ができますか?

  1. 他のアプリケーションが Web ブラウザ コントロールを制御できないようにする方法はありますか?
  2. HTMLを表示するのと同じ力を持つWebブラウザコントロールの代替手段はありますか?
4

0 に答える 0