gecko-dev/cmd/winfe/urlecho.h

103 lines
2.2 KiB
C
Raw Normal View History

1998-03-28 02:44:41 +00:00
/* -*- 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.
*/
#ifndef __URLECHO_H
// Avoid include redundancy
//
#define __URLECHO_H
// Purpose: Monitor loaded URLs and their referrers
// Comments: Implementing since API through netlib finally made clear.
// Revision History:
// 01-18-95 created GAB
//
// Required Includes
//
// Constants
//
// Structures
//
class CEchoRegistry {
protected:
static CPtrList m_Registry;
POSITION m_rIndex;
CEchoRegistry() {
}
~CEchoRegistry() {
m_Registry.RemoveAt(m_rIndex);
}
};
class CEchoItem : public CEchoRegistry {
protected:
enum {
m_DDE,
m_OLE
};
int m_iType;
CEchoItem(int iType) : CEchoRegistry() {
m_iType = iType;
}
virtual void EchoURL(CString& csURL, CString& csMimeType, DWORD dwWindowID, CString& csReferrer) = 0;
public:
int GetType() {
return(m_iType);
}
static void Echo(CString& csURL, CString& csMimeType, DWORD dwWindowID, CString& csReferrer);
};
class CDDEEchoItem : public CEchoItem {
CString m_csServiceName;
protected:
CDDEEchoItem(CString& csServiceName) : CEchoItem(m_DDE) {
m_rIndex = m_Registry.AddTail(this);
m_csServiceName = csServiceName;
}
// Must override.
void EchoURL(CString& csURL, CString& csMimeType, DWORD dwWindowID, CString& csReferrer);
public:
CString GetServiceName() {
return(m_csServiceName);
}
// Consider these the constructor, destructor.
static void DDERegister(CString &csServiceName);
static BOOL DDEUnRegister(CString &csServiceName);
};
// Global variables
//
// Macros
//
// Function declarations
//
#endif // __URLECHO_H