<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Delphi funktionen direkt im BCB nutzen?]]></title><description><![CDATA[<p>Wie kann man im BCB delphi funktionen direkt nutzen? Sowas wie inline assembler... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> mir ist bekannt das man .pas dateien einbinden kann und dann über den generierten header drauf zugreifen kann aber wie geht es im C++ quelltext direkt? möchte gerne folgenden code im BCB nutzen:</p>
<pre><code>uses
  ActiveX, Shdocvw_tlb, MSHTML_TLB;

type
  TObjectFromLResult = function(LRESULT: lResult; const IID: TIID;
    wParam: wParam; out pObject): HRESULT;
  stdcall;

function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  Msg: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
begin
  hInst := LoadLibrary('Oleacc.dll'); @ObjectFromLresult :=
    GetProcAddress(hInst, 'ObjectFromLresult');
  if @ObjectFromLresult &lt;&gt; nil then
  begin
    try
      Msg := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, Msg, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
          IWebbrowser2, IE);
    finally
      FreeLibrary(hInst);
    end;
  end;
end;

function GetActiveIEURL: string;
var
  Document: IHtmlDocument2;
  IE: IWebBrowser2;
  Wnd: HWND;
  WndChild: HWND;
begin
  Wnd := GetForeGroundWindow;
  WndChild := FindWindowEX(Wnd, 0, 'Shell DocObject View', nil);
  if WndChild &lt;&gt; 0 then
  begin
    WndChild := FindWindowEX(WndChild, 0, 'Internet Explorer_Server', nil);
    if WndChild &lt;&gt; 0 then
    begin
      //Get Iwebbrowser2 from Handle
      GetIEFromHWnd(WndChild, IE);
      if IE &lt;&gt; nil then
      begin
        Result := IE.LocationURL;
        // Document := IE.Document as IHtmlDocument2;
      end;
    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption := GetActiveIEURL;
end;
</code></pre>
<p>da ich scheitere diesen nach C++ zu konvertieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127163/delphi-funktionen-direkt-im-bcb-nutzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 21:53:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127163.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Nov 2005 20:33:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Delphi funktionen direkt im BCB nutzen? on Mon, 21 Nov 2005 20:33:08 GMT]]></title><description><![CDATA[<p>Wie kann man im BCB delphi funktionen direkt nutzen? Sowas wie inline assembler... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /> mir ist bekannt das man .pas dateien einbinden kann und dann über den generierten header drauf zugreifen kann aber wie geht es im C++ quelltext direkt? möchte gerne folgenden code im BCB nutzen:</p>
<pre><code>uses
  ActiveX, Shdocvw_tlb, MSHTML_TLB;

type
  TObjectFromLResult = function(LRESULT: lResult; const IID: TIID;
    wParam: wParam; out pObject): HRESULT;
  stdcall;

function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  Msg: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
begin
  hInst := LoadLibrary('Oleacc.dll'); @ObjectFromLresult :=
    GetProcAddress(hInst, 'ObjectFromLresult');
  if @ObjectFromLresult &lt;&gt; nil then
  begin
    try
      Msg := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, Msg, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
          IWebbrowser2, IE);
    finally
      FreeLibrary(hInst);
    end;
  end;
end;

function GetActiveIEURL: string;
var
  Document: IHtmlDocument2;
  IE: IWebBrowser2;
  Wnd: HWND;
  WndChild: HWND;
begin
  Wnd := GetForeGroundWindow;
  WndChild := FindWindowEX(Wnd, 0, 'Shell DocObject View', nil);
  if WndChild &lt;&gt; 0 then
  begin
    WndChild := FindWindowEX(WndChild, 0, 'Internet Explorer_Server', nil);
    if WndChild &lt;&gt; 0 then
    begin
      //Get Iwebbrowser2 from Handle
      GetIEFromHWnd(WndChild, IE);
      if IE &lt;&gt; nil then
      begin
        Result := IE.LocationURL;
        // Document := IE.Document as IHtmlDocument2;
      end;
    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption := GetActiveIEURL;
end;
</code></pre>
<p>da ich scheitere diesen nach C++ zu konvertieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/923794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923794</guid><dc:creator><![CDATA[delphi]]></dc:creator><pubDate>Mon, 21 Nov 2005 20:33:08 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi funktionen direkt im BCB nutzen? on Mon, 21 Nov 2005 21:00:25 GMT]]></title><description><![CDATA[<p>Oder wie komme ich an das Handle von der internet explorer leiste? Mit FindWindow müsste ich ja einen fenster titel angeben und da der beim IE ja unterschiedlich ist (xyz - Microsoft Internet Explorer) geht das ja nicht. Also wie bekomme ich das handle der IE adress leiste von dem derzeit aktiven IE? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/923830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923830</guid><dc:creator><![CDATA[delphi]]></dc:creator><pubDate>Mon, 21 Nov 2005 21:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to Delphi funktionen direkt im BCB nutzen? on Tue, 22 Nov 2005 05:48:53 GMT]]></title><description><![CDATA[<p>Mit</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/enumwindows.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/enumwindows.asp</a></p>
<p>alle Fenster abklappern und prüfen, ob &quot;Internet Explorer&quot; in den gefundenen Fensternamen vorkommt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923963</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Tue, 22 Nov 2005 05:48:53 GMT</pubDate></item></channel></rss>