home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- // TALK.H : interface of the CTalkSiteMgr and CTalkNav classes
- //
- /////////////////////////////////////////////////////////////////////////////
- #ifdef EDITOR
- #ifdef _WIN32
-
- #ifndef TALK_H
- #define TALK_H
-
- // Finds an existing site manager instance by enumerating existing windows
- BOOL FE_FindSiteMgr();
-
- #define SM_QUERY_WINDOW 1
- #define SM_IS_ALIVE 2
- #define SM_IS_DEAD 3
-
- /////////////////////////////////////////////////////////////////////////////
- // CTalkNav command target
-
- class CTalkNav : public CCmdTarget
- {
- DECLARE_DYNCREATE(CTalkNav)
-
- CTalkNav(); // protected constructor used by dynamic creation
-
- // Attributes
- public:
-
- // Operations
- public:
-
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTalkNav)
- public:
- virtual void OnFinalRelease();
- //}}AFX_VIRTUAL
-
- // Implementation
- protected:
- virtual ~CTalkNav();
-
- // Generated message map functions
- //{{AFX_MSG(CTalkNav)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_MSG
-
- DECLARE_MESSAGE_MAP()
- DECLARE_OLECREATE(CTalkNav)
-
- // Generated OLE dispatch map functions
- //{{AFX_DISPATCH(CTalkNav)
- afx_msg long BrowseURL(LPCTSTR url);
- afx_msg long EditURL(LPCTSTR url);
- //}}AFX_DISPATCH
- DECLARE_DISPATCH_MAP()
- DECLARE_INTERFACE_MAP()
- };
-
- /////////////////////////////////////////////////////////////////////////////
- //
- // ITalkSMClient usage:
- //
- // Create an global instance of the class during app initialization:
- //
- // talkSM = new ITalkSMClient;
- //
- // You can query this instance to know whether SM server is registered:
- //
- // if (talkSM->IsRegistered()) ...
- //
- // During app intitialization, you need to find out whether SM is alive. Do
- // this using "__talkSM_SM_IsAlive__" registered Windows message, with wParam
- // set to 1. A return value of 0x015DEAD0 indicates that SM is alive. If this
- // is the case, do the following:
- //
- // talkSM->SetKnownSMState(TRUE);
- //
- // While the navigator is running, SM may send a message telling it that it
- // is either being openned or shut down. This will be done using the same
- // registered Windows message "__talkSM_SM_IsAlive__" with wParam set to 2
- // (for openning) or 3 (for shutting down). When this happens, you should
- // call SetKnownSMState with either TRUE or FALSE as appropriate.
- //
- // If these rules are followed, then you can just call SavedURL, LoadingURL,
- // and BecomeActive as needed.
- //
- //
- /////////////////////////////////////////////////////////////////////////////
- // ITalkSMClient wrapper class
-
- class ITalkSMClient : public COleDispatchDriver
- {
- private:
- BOOL m_registered;
- BOOL m_alive;
- BOOL m_connected;
- BOOL m_retried;
-
- BOOL Connect(void);
- void Disconnect(void);
- BOOL Reconnect(void);
- BOOL IsConnected(void);
-
- public:
- ITalkSMClient(void);
- ~ITalkSMClient(void);
-
- inline BOOL IsRegistered(void) {return m_registered;}
- inline void SetKnownSMState(BOOL isAlive) {m_alive = isAlive;}
-
- long SavedURL(LPCTSTR url);
- long LoadingURL(LPCTSTR url);
- long BecomeActive();
- };
-
- #endif //TALK_H
- #endif //_WIN32
- #endif //EDITOR
-