gecko-dev/cmd/winfe/talk.h

138 строки
3.8 KiB
C++

/* -*- 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