Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

OpenOffice.org/DOCX/FB2 Viewer
Goto page Previous  1, 2, 3 ... 11, 12, 13 ... 17, 18, 19  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Nov 09, 2007 17:17    Post subject: Reply with quote

Ник wrote:
Не понял - он же для всех файлов одинаковый - на фига он там, а не в директории плагина?


Он был в директории плагина. Вначале. Но для fb2 это не работает: нельзя ссылаться на xsl в директории плагина, т.к. там есть еще один xsl (FB2_2_html_basics.xsl), который из дир плагина не подцепится...
Я пробовал..
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Nov 09, 2007 17:33    Post subject: Reply with quote

А кто мешает делать временные файлы в директории плагина и стирать потом?
Или это не годится для портейбл вариантов?
_________________
Xubuntu
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Nov 09, 2007 18:44    Post subject: Reply with quote

Как раз не годится для portable вариантов... Вот еще на флешке может быть мало места, а ты начинавешь вьювить 10Мбайтный fb2.. КОнечно такие fb2 редко встречаются, но все-таки Smile


Edit: директория плагина тоже может быть с русским именем.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Mon Nov 19, 2007 16:57    Post subject: Reply with quote

C клавишами для Lister'а получается что-нибудь или нет?
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Mon Nov 19, 2007 18:06    Post subject: Reply with quote

Starina
Пока нет, пока этот код не пробовал. //Есть другие дела.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Nov 29, 2007 01:03    Post subject: Reply with quote

Starina
Пока выложил код сюда, "WLXViewer_NewTesting". Не получается заменить TWebBrowser на TCustomizedWebBrowser: все виснет при старте плагина, посмотри плс, что там поправить надо в TCustomizedWB..
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Thu Nov 29, 2007 17:23    Post subject: Reply with quote

Забрал. Посмотрю.
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Thu Nov 29, 2007 19:05    Post subject: Reply with quote

Смысл в том, что надо описывать все методы интерфейса.

Code:

type

  TDocHostUIInfo = packed record
    cbSize: ULONG;
    dwFlags: DWORD;
    dwDoubleClick: DWORD;
  end;

const
  DOCHOSTUIFLAG_DIALOG                  = 1;
  DOCHOSTUIFLAG_DISABLE_HELP_MENU       = 2;
  DOCHOSTUIFLAG_NO3DBORDER              = 4;
  DOCHOSTUIFLAG_SCROLL_NO               = 8;
  DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 16;
  DOCHOSTUIFLAG_OPENNEWWIN              = 32;
  DOCHOSTUIFLAG_DISABLE_OFFSCREEN       = 64;
  DOCHOSTUIFLAG_FLAT_SCROLLBAR          = 128;
  DOCHOSTUIFLAG_DIV_BLOCKDEFAULT        = 256;
  DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 512;
const
  DOCHOSTUIDBLCLK_DEFAULT               = 0;
  DOCHOSTUIDBLCLK_SHOWPROPERTIES        = 1;
  DOCHOSTUIDBLCLK_SHOWCODE              = 2;
type

  IDocHostUIHandler = interface(IUnknown)
    ['{bd3f23c0-d43e-11cf-893b-00aa00bdce1a}']
    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
      const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
    function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject;
      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
      const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
    function HideUI: HRESULT; stdcall;
    function UpdateUI: HRESULT; stdcall;
    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
    function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow;
      const fRameWindow: BOOL): HRESULT; stdcall;
    function TranslateAccelerator(const lpMsg: PMSG;
      const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall;
    function GetOptionKeyPath(var pchKey: POLESTR;
      const dw: DWORD): HRESULT; stdcall;
    function GetDropTarget(const pDropTarget: IDropTarget;
      out ppDropTarget: IDropTarget): HRESULT; stdcall;
    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
    function TranslateUrl(const dwTranslate: DWORD;
      const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT; stdcall;
    function FilterDataObject(const pDO: IDataObject;
      out ppDORet: IDataObject): HRESULT; stdcall;
  end;

type
  TCustomizedWebBrowser = class(TWebBrowser, IDocHostUIHandler)
    function ShowContextMenu(const dwID: DWORD; const ppt: PPOINT;
      const pcmdtReserved: IUnknown; const pdispReserved: IDispatch): HRESULT; stdcall;
    function GetHostInfo(var pInfo: TDOCHOSTUIINFO): HRESULT; stdcall;
    function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject;
      const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
      const pDoc: IOleInPlaceUIWindow): HRESULT; stdcall;
    function HideUI: HRESULT; stdcall;
    function UpdateUI: HRESULT; stdcall;
    function EnableModeless(const fEnable: BOOL): HRESULT; stdcall;
    function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
    function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall;
    function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow;
      const fRameWindow: BOOL): HRESULT; stdcall;
    function TranslateAccelerator(const lpMsg: PMSG;
      const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall;
    function GetOptionKeyPath(var pchKey: POLESTR;
      const dw: DWORD): HRESULT; stdcall;
    function GetDropTarget(const pDropTarget: IDropTarget;
      out ppDropTarget: IDropTarget): HRESULT; stdcall;
    function GetExternal(out ppDispatch: IDispatch): HRESULT; stdcall;
    function TranslateUrl(const dwTranslate: DWORD;
      const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT; stdcall;
    function FilterDataObject(const pDO: IDataObject;
      out ppDORet: IDataObject): HRESULT; stdcall;
  end;

implementation

uses
  Dialogs, Messages;

{ TCustomizedWebBrowser }

function TCustomizedWebBrowser.EnableModeless(
  const fEnable: BOOL): HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.FilterDataObject(const pDO: IDataObject;
  out ppDORet: IDataObject): HRESULT;
begin
  ppDORet := nil;
  Result := S_FALSE;
end;

function TCustomizedWebBrowser.GetDropTarget(
  const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT;
begin
  ppDropTarget := nil;
  Result := E_FAIL;
end;

function TCustomizedWebBrowser.GetExternal(
  out ppDispatch: IDispatch): HRESULT;
begin
  ppDispatch := nil;
  Result := E_FAIL;
end;

function TCustomizedWebBrowser.GetHostInfo(
  var pInfo: TDOCHOSTUIINFO): HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.GetOptionKeyPath(var pchKey: POLESTR;
  const dw: DWORD): HRESULT;
begin
  Result := E_FAIL;
end;

function TCustomizedWebBrowser.HideUI: HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.OnDocWindowActivate(
  const fActivate: BOOL): HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.OnFrameWindowActivate(
  const fActivate: BOOL): HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.ResizeBorder(const prcBorder: PRECT;
  const pUIWindow: IOleInPlaceUIWindow; const fRameWindow: BOOL): HRESULT;
begin
  Result := S_FALSE;
end;

function TCustomizedWebBrowser.ShowContextMenu(const dwID: DWORD;
  const ppt: PPOINT; const pcmdtReserved: IInterface;
  const pdispReserved: IDispatch): HRESULT;
begin
  Result := S_FALSE;
end;

function TCustomizedWebBrowser.ShowUI(const dwID: DWORD;
  const pActiveObject: IOleInPlaceActiveObject;
  const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame;
  const pDoc: IOleInPlaceUIWindow): HRESULT;
begin
  Result := S_OK;
end;

function TCustomizedWebBrowser.TranslateAccelerator(const lpMsg: PMSG;
  const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
begin
  Result := S_FALSE;
 
  with lpMsg^ do
    if (message = WM_KEYDOWN) and (GetKeyState(VK_CONTROL) >= 0) then
      begin
        MessageDlg(Char(wParam), mtWarning, [mbOK], 0);

        Result := S_OK;
      end
end;

function TCustomizedWebBrowser.TranslateUrl(const dwTranslate: DWORD;
  const pchURLIn: POLESTR; var ppchURLOut: POLESTR): HRESULT;
begin
  Result := E_FAIL;
end;

function TCustomizedWebBrowser.UpdateUI: HRESULT;
begin
  Result := S_OK;
end;



Но прикол в том, что вызываются все методы кроме нужного.
Буду смотреть дальше.
Back to top
View user's profile Send private message
volovyan



Joined: 03 Dec 2007
Posts: 51
Location: Vancouver, Canada

Post (Separately) Posted: Mon Dec 03, 2007 21:41    Post subject: Reply with quote

Я в своем плагине (PDF-Filter) это делал, не помогло, как не работали клавиши, так и не работают. После плясок с бубнами с CustomizedBrowser, EmbeddedBowser, etc., понял, что
нужно смотреть на установку хука с помощью SetWindowsHookEx, с этим все работает отлично (спасибо IEView, там именно так и сделано).
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Dec 06, 2007 20:13    Post subject: Reply with quote

volovyan wrote:
После плясок с бубнами с CustomizedBrowser, EmbeddedBowser, etc., понял, что
нужно смотреть на установку хука с помощью SetWindowsHookEx


Ясно, спасибо. У меня есть пример плагина с хуком, но я в нем не разобрался. Не хватило терпения. Confused
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
volovyan



Joined: 03 Dec 2007
Posts: 51
Location: Vancouver, Canada

Post (Separately) Posted: Fri Dec 07, 2007 22:26    Post subject: Reply with quote

У меня после установки хука работает отлично. Код пришлю сегодня (7 дек) вечером (по нашему местному времени Smile на работе работаю Smile )
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Dec 07, 2007 23:29    Post subject: Reply with quote

Пример плагина с WebBrowser и хуком?- спасибо.
Back to top
View user's profile Send private message
volovyan



Joined: 03 Dec 2007
Posts: 51
Location: Vancouver, Canada

Post (Separately) Posted: Mon Dec 10, 2007 04:52    Post subject: Reply with quote

См. ЛС
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Sat Feb 23, 2008 21:51    Post subject: Reply with quote

Новостей не будет?
_________________
Xubuntu
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Sun Feb 24, 2008 03:56    Post subject: Reply with quote

С тем, что сказал Volovyan? нет. Нет времени этим заниматься,- встраиванием хука в плагин и тестированием потом, как это все работает то в Тотале, то в Universal Viewer.

Тем более я хуки не люблю, не программировал с ними ничего..
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 11, 12, 13 ... 17, 18, 19  Next
Page 12 of 19

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group