I think this is cool.

In your blog you write:

> I’ve used prtypes.h for all the basic types and also nsresult, guess  
> this is the obvious way to go.

Is there any reason for not using native types for each platform/OS  
e.g. HRESULT on Windows?

/Christian

On May 6, 2008, at 10:14 PM, Pelle Johnsen wrote:

> Hi,
>
> I've been making a small embedding sample on win32, sort of in the
> spirit of the "minimal workable embedding example" posted here earlier
> for gtk. However I also wanted to take a first stab at wrapping many  
> of
> the 'complicated' embedding calls in a simpler API as seen from the
> application. Maybe this can serve as input for the discussion about
> embedding APIs later this week :)
>
> I've posted about it at http://pellej.com/?p=41 where you can also
> download the VC++ 2005 project. (finally made me revive my old blog  
> and
> update to WP 2.5)
>
> I'll inline the essence of the API header here as well.
>
>  -Pelle
>
> class MozEmbed
> {
> public:
>     MozEmbed();
>     virtual ~MozEmbed();
>     nsresult CreateBrowser(void* aNativeWindow, PRInt32 x, PRInt32 y,
>         PRInt32 width, PRInt32 height);
>     nsresult SetPositionAndSize(PRInt32 x, PRInt32 y,
>         PRInt32 width, PRInt32 height);
>     nsresult LoadURI(const char* uri);
>     nsresult SetFocus(PRBool focus);
>
>     void SetListener(EmbedListener* pNewListener);
>     EmbedListener* GetListener();
>
>     void* GetNativeWindow();
>
> private:
>     nsresult InitEmbedding();
>     EmbedListener* pListener;
>     void* nativeWindow;
>     nsCOMPtr<nsIWebBrowser> webBrowser;
>     nsCOMPtr<nsIWebNavigation> webNavigation;
>     nsCOMPtr<nsIWebBrowserChrome> chrome;
> };
>
> /**
>  * This is the callback interface to the embeddig app.
>  * The app can subclass this and override methods that will
>  * be called as appropriate.
>  *
>  * Use MozEmbed::SetListener to regster the listener
>  *
>  * EmbedListener implements noop defaults, so the app only
>  * needs to override the methods it uses.
>  */
> class EmbedListener
> {
> public:
>     EmbedListener();
>     virtual ~EmbedListener();
>     void SetMozEmbed(MozEmbed* pAMozEmbed);
>
>     // methods the embedding app can override
>     virtual void SetTitle(const char* newTitle);
>
> protected:
>     MozEmbed* pMozEmbed;
> };
> _______________________________________________
> dev-embedding mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-embedding

_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to