home *** CD-ROM | disk | FTP | other *** search
- /**[f******************************************************************
- *
- * IntfMgr.h -- Interface Manager
- *
- * Copyright 1996(c) Adobe Systems, Inc.
- *
- *
- * Interface manager. It will handle Acquire and Release of
- * PageMaker interfaces.
- * $Revision: 1.1 $
- *
- * $Author: pnorton $
- * $Date: 27 Aug 1996 15:03:44 $
- * $Log: U:/pmsdk/includes/vcs/ciintmgr.hv $
- *
- *
- *
- *
- **f]******************************************************************/
-
- #ifndef __INTFMGR_H
- #define __INTFMGR_H
- #include "PMTypes.h"
-
- typedef void *(CIInterfaceFactory)(char *);
-
- class CIInterfaceManager
- {
- public:
- // Plugin can acquire pre-defined interface from PageMaker. PageMaker pre-defined
- // interface are id based. The following methods should be used by plugin to
- // acquire and release pre-defined PageMaker interfaces. SHOULD ONLY BE CALLED
- // TO ACQUIRE AND RELEASE PRE-DEFINED PAGEMAKER INTERFACES.
- virtual PMErr AcquirePMInterface(unsigned long id, void **ppInterface) = 0;
- virtual PMErr ReleasePMInterface(void *pInterface) = 0;
-
- // Plugin can acquire interfaces that are published by plugins. If you acquire an
- // interface by name. You should also free the interface by name. Plugin that owns
- // the interface will receive a kPMAcquireInterface message to provide the
- // interface when the following AcquirePMInterface method is called. Plugin that
- // owns the interface will receive a kPMReleaseInterface message when the following
- // ReleasePMInterface method is called.
- virtual PMErr AcquirePMInterface(char *pInterfaceName, void **ppInterface) = 0;
- virtual PMErr ReleasePMInterface(char *pInterfaceName, void **ppInterface) = 0;
-
- // Plugin can add and remove interface name to PageMaker. The published interface
- // can be acquired through the AcquirePMInterface (by name). Plugin must call
- // RemovePMInterface to remove an interface name from PageMaker. Only plugin that
- // owns the interface can remove the interface from PageMaker.
- virtual PMErr AddPMInterface(char *pInterfaceName)=0;
- virtual PMErr RemovePMInterface(char *pInterfaceName) = 0;
- };
-
- typedef struct _PMInterface {
- char *pInterfaceName;
- void *pInterface;
- } PMInterface, *LPPMInterface;
-
- #endif
-
-