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.
- */
- #ifndef __APIADDR_H
- #define __APIADDR_H
-
- #ifndef __APIAPI_H
- #include "apiapi.h"
- #endif
- #ifndef __NSGUIDS_H
- #include "nsguids.h"
- #endif
-
- class IAddressParent
- {
- public:
- virtual void AddedItem (
- HWND hwnd,
- LONG id,
- int index
- ) = 0;
-
- virtual int ChangedItem (
- char * pString,
- int index,
- HWND hwnd,
- char ** ppFullName,
- unsigned long* entryID,
- UINT* bitmapID
- ) = 0;
-
- virtual void DeletedItem (
- HWND hwnd,
- LONG id,
- int index
- ) = 0;
-
- virtual char * NameCompletion (
- char * pString
- ) = 0;
- };
-
- typedef IAddressParent * LPADDRESSPARENT;
-
- // Address control API
-
- #define APICLASS_ADDRESSCONTROL "AddressControl"
-
- typedef struct {
- ULONG ulHeaderType;
- char * szAddress;
- UINT idBitmap;
- ULONG idEntry;
- } NSADDRESSLIST;
-
- typedef NSADDRESSLIST * LPNSADDRESSLIST;
-
- #define WM_CHILDLOSTFOCUS WM_USER+600
- #define WM_LEAVINGLASTFIELD WM_USER+601
- #define WM_UPDATEHEADERTYPE WM_USER+602
- #define WM_UPDATEHEADERCONTENTS WM_USER+603
- #define WM_NOTIFYSELECTIONCHANGE WM_USER+604
- #define WM_DISPLAYTYPELIST WM_USER+605
-
- class CNSAddressList;
- class CNSAddressTypeControl;
-
- class IAddressControl
- {
- public:
- virtual BOOL AddAddressType (
- char * pszChoice,
- UINT pidBitmap = 0,
- BOOL bExpand = TRUE,
- BOOL bHidden = FALSE,
- BOOL bExclusive = FALSE,
- DWORD dwUserData = 0
- ) = 0;
-
- virtual void SetDefaultBitmapId (
- int id = 0
- ) = 0;
-
- virtual int GetDefaultBitmapId (
- void
- ) = 0;
-
- virtual BOOL RemoveSelection (
- int nIndex = -1
- ) = 0;
-
- virtual int AppendEntry (
- BOOL expandName = TRUE,
- LPCTSTR szType = 0,
- LPCTSTR szName = 0,
- UINT idBitmap = 0,
- unsigned long idEntry = 0
- ) = 0;
-
- virtual int InsertEntry(
- int nIndex,
- BOOL expandName = TRUE,
- LPCTSTR szType = 0,
- LPCTSTR szName = 0,
- UINT idBitmap = 0,
- unsigned long idEntry = 0
- ) = 0;
-
- virtual BOOL SetEntry (
- int nIndex,
- LPCTSTR szType = 0,
- LPCTSTR szName = 0,
- UINT idBitmap = 0,
- unsigned long idEntry = 0
- ) = 0;
-
- virtual BOOL GetEntry (
- int nIndex,
- char ** szType = 0,
- char ** szName = 0,
- UINT * idBitmap = 0,
- unsigned long * idEntry = 0
- ) = 0;
-
- virtual int GetItemFromPoint(
- LPPOINT point
- ) = 0;
-
- virtual BOOL DeleteEntry (
- int nIndex
- ) = 0;
-
- virtual int FindEntry (
- int nStart,
- LPCTSTR lpszName
- ) = 0;
-
- virtual BOOL Create (
- CWnd *pParent,
- int id = 1000
- ) = 0;
-
- virtual CListBox * GetAddressTypeComboBox (
- void
- ) = 0;
-
- virtual CEdit * GetAddressNameField (
- void
- ) = 0;
-
- virtual void SetItemName (
- int nIndex,
- char * text
- ) = 0;
-
- virtual void SetItemBitmap (
- int nIndex,
- UINT id
- ) = 0;
-
- virtual void SetItemEntryID (
- int nIndex,
- unsigned long id
- ) = 0;
-
- virtual void SetControlParent (
- LPADDRESSPARENT pIAddressParent
- ) = 0;
-
- virtual int GetAddressList (
- LPNSADDRESSLIST * ppAdressList
- ) = 0;
-
- virtual int SetAddressList (
- LPNSADDRESSLIST pAddressList,
- int count
- ) = 0;
-
- virtual CListBox * GetListBox(
- void
- ) = 0;
-
- virtual BOOL IsCreated(
- void
- ) = 0;
- virtual int SetSel(
- int nIndex,
- BOOL bSelected
- ) = 0;
-
- #define ADDRESS_TYPE_FLAG UINT
- #define ADDRESS_TYPE_FLAG_VALUE 0x1
- #define ADDRESS_TYPE_FLAG_HIDDEN 0x2
- #define ADDRESS_TYPE_FLAG_EXCLUSIVE 0x4
- #define ADDRESS_TYPE_FLAG_BITMAP 0x8
- #define ADDRESS_TYPE_FLAG_USER 0x10
-
- virtual void GetTypeInfo(
- int nIndex,
- ADDRESS_TYPE_FLAG flag,
- void ** value
- ) = 0;
-
- virtual void EnableParsing(
- BOOL bParse = TRUE
- ) = 0;
-
- virtual void SetCSID (
- int16 csid = 0
- ) = 0;
- };
-
- typedef IAddressControl * LPADDRESSCONTROL;
-
- #define ApiAddressControl(v,unk) APIPTRDEF(IID_IAddressControl,IAddressControl,v,unk)
-
- #endif
-