|
|
/* (C) Copyright Microsoft Corporation 1991. All rights reserved. */
/*
* WORKBENCH INCLUDE FILE * * This is the public include for the workbench. All workbench client * applications and handler DLLs will need to include this file. * * The following must be included before this file: * windows.h * wincom.h * mediaman.h * */ #ifndef _WRKBENCH_H_
#define _WRKBENCH_H_
#ifndef EXPORT
#define EXPORT FAR PASCAL
#endif
/******* VERSION FOR USE IN INFO STRUCTURES *******/ #define WRK_VERSION 0x100
/******* RANDOM FUNCTIONS *******/ BOOL EXPORT wrkClientInit( void ); BOOL EXPORT wrkClientExit( void ); WORD EXPORT wrkGetVariable(WORD w); BOOL EXPORT wrkSetVariable(WORD w, WORD wVariable); BOOL EXPORT wrkLoadDll(LPSTR lpszDllName);
HWND EXPORT wrkCreateIntroWindow(HANDLE hInstApp, WORD wString1Id, WORD wString2Id, WORD wString3Id, WORD wBitmapId); BOOL EXPORT wrkDestroyIntroWindow(HWND hwndIntro);
VOID EXPORT wrkShowAboutDialog(HANDLE hInstApp, HWND hwndParent, WORD wCaptionId, WORD wString1Id, WORD wString2Id, WORD wString3Id, WORD wBitmapId);
#define WRKV_DEBUG 0
#define WRKV_CONFIRMCONVERT 2
#define WRKV_HINSTWORKBENCH 4
/********* EXTENSION LIST *********/
typedef DWORD EXTENSION; typedef HANDLE ExtensionList;
WORD EXPORT wrkGetExtSize(ExtensionList extList); EXTENSION EXPORT wrkGetExtElement(ExtensionList extList, WORD wElement); WORD EXPORT wrkGetExtString(ExtensionList extList, LPSTR lpszBuf, WORD wSize); EXTENSION EXPORT wrkStringToExtension(LPSTR lpszString); BOOL EXPORT wrkExtInList(ExtensionList extList, EXTENSION extension);
/********* INSTALLED TOOL FUNCTIONS *************/
#ifndef _WRKI_H_
typedef HANDLE InstalledTool; #endif
InstalledTool EXPORT wrkRegisterLoader(HANDLE hModDll, MEDTYPE typeModule, MEDTYPE typeLogical, LPSTR lpszExtensions, LPSTR lpszTitle, WORD wFlags); InstalledTool EXPORT wrkRegisterHandler(HANDLE hModDll, MEDTYPE typeLogical, LPSTR lpszTitle, WORD wFlags); InstalledTool EXPORT wrkRegisterUtility(LPSTR lpszExeName, LPSTR lpszTitle, WORD wFlags); InstalledTool EXPORT wrkRegisterEditor(LPSTR lpszExeName, MEDTYPE typeLogical, LPSTR lpszTitle, WORD wFlags);
InstalledTool EXPORT wrkIterTools(InstalledTool instTool, WORD wType); InstalledTool EXPORT wrkVerifyHandler(MEDTYPE typeLogical, LPSTR lpszSuggest); BOOL EXPORT wrkRealizeModule(InstalledTool tool);
/* Defined tool/module types - for wrkIterTools */ #define TOOL_LOADER 0x0001
#define TOOL_EDITOR 0x0002
#define TOOL_HANDLER 0x0004
#define TOOL_UTILITY 0x0008
#define TOOL_PROCTOOL 0x0010 // not implemented!
#define TOOL_ALLTYPES 0xffff
/* Flags for registerLoader */ #define LOADF_DOESLOAD 0x0001
#define LOADF_DOESSAVE 0x0002
#define LOADF_FILEBASED 0x0004
#define LOADF_CONVERTTOOL 0x0008
#define LOADF_MANAGERTOOL 0x0010
/******* Installed tool Information functions *******/ typedef struct _InstalledToolInfo { WORD wVersion; WORD wType; WORD wFlags; WORD wUsage; MEDTYPE typeModule; MEDTYPE typeLogical; ExtensionList exten; } InstalledToolInfo; typedef InstalledToolInfo FAR *FPInstalledToolInfo;
BOOL EXPORT wrkGetToolInfo(InstalledTool tool, FPInstalledToolInfo fpInfo); WORD EXPORT wrkGetToolType(InstalledTool tool); BOOL EXPORT wrkGetToolTitle(InstalledTool tool, LPSTR lpszBuf, WORD wLen); BOOL EXPORT wrkGetToolModname(InstalledTool tool, LPSTR lpszBuf, WORD wLen); BOOL EXPORT wrkGetLogicalExtensions(MEDTYPE typeLogical, WORD wFlags, LPSTR lpszBuf, WORD wLen);
/******* TOOL ARRAY FUNCTIONS *******/ #ifndef _WRKI_H_
typedef WORD ToolArray; #endif
ToolArray EXPORT wrkCreateToolArray(WORD wSize); BOOL EXPORT wrkDestroyToolArray(ToolArray toolArr); WORD EXPORT wrkAddToToolArray(ToolArray toolArr, InstalledTool tool, BOOL fNoDup); WORD EXPORT wrkGetToolArraySize(ToolArray toolArr); InstalledTool EXPORT wrkGetToolArrayEntry(ToolArray toolArr, WORD wIndex);
WORD EXPORT wrkToolChooseDlg(HWND hwnd, ToolArray toolArr, WORD wInitial, LPSTR lpszTitle, LPSTR lpszFirst, WORD wFlags); #define TCD_NOSELECTION 0xffff
/******* INSTANCE FUNCTIONS ********/
typedef HANDLE ToolInstance;
ToolInstance EXPORT wrkAddInstance(InstalledTool toolHandle, HWND hwnd, LPSTR lpszInstTitle, WORD wFlags); BOOL EXPORT wrkRemoveInstance(ToolInstance toolInst); LONG EXPORT wrkInstSendMessage(ToolInstance toolInst, unsigned msg, WORD wParam, LONG lParam); BOOL EXPORT wrkInstPostMessage(ToolInstance toolInst, unsigned msg, WORD wParam, LONG lParam); BOOL EXPORT wrkBroadcastMessage(BOOL fPost, unsigned msg, WORD wParam, LONG lParam); ToolInstance EXPORT wrkGetNextInst(ToolInstance toolInst);
/* Tool instance info functions */ typedef struct _ToolInstanceInfo { WORD wVersion; WORD wAction; InstalledTool toolClass; WORD wInstFlags; HWND hwndTool; } ToolInstanceInfo; typedef ToolInstanceInfo FAR *FPToolInstanceInfo;
/* Action codes for wrkSetInstInfo structure */ #define WRKINFO_INSTFLAGS 0x0002
#define WRKINFO_HWND 0x0008
#define WRKINFO_ALL 0x00FF
InstalledTool EXPORT wrkGetInstToolType(ToolInstance toolInst); BOOL EXPORT wrkSetInstInfo(ToolInstance toolInst, FPToolInstanceInfo fpInfo); BOOL EXPORT wrkGetInstInfo(ToolInstance toolInst, FPToolInstanceInfo fpInfo); BOOL EXPORT wrkSetInstTitle(ToolInstance toolInst, LPSTR lpszInstTitle); BOOL EXPORT wrkGetInstTitle(ToolInstance toolInst, LPSTR lpszBuf, WORD wLen);
/* Flags for SetInstInfo & AddInstance */ #define WRK_NOINSTNOTIFY 0x0001
/********* RESOURCE ACCESS **************/
WORD EXPORT wrkOpenFilename(LPSTR lpszFilename, FPMedReturn medReturn, MEDTYPE typeLogical, WORD wFlags, HWND hwnd, LPSTR lpszTitle); WORD EXPORT wrkOpenDialog(FPMedReturn medReturn, MEDTYPE typeLogical, WORD wFlags, HWND hwnd, LPSTR lpszTitle); WORD EXPORT wrkSaveDialog(MEDID medid, FPMedReturn medReturn, WORD wFlags, HWND hwnd, LPSTR lpszTitle);
BOOL EXPORT wrkShowResError(HWND hwnd, LPSTR lpszTitle);
/* Flags for FileLoading/Saving functions */ #define WRK_SHOWERROR 0x0001
#define WRK_SAVEASDIALOG 0x0002
#define WRK_NONSHARED 0x2000
#define WRK_SHAREDONLY 0x1000
/********* TOOL INSTANCE STARTING *********/ ToolInstance EXPORT wrkRunTool(InstalledTool tool, LPSTR lpszArguments, WORD wCmdShow, HWND hwndParent, WORD wFlags); #define WRK_NOGETINSTHANDLE 0x0080
/*
* Messages sent to client tools */ #define WRK_MINMESSAGE 0xB000
#define WRK_MAXMESSAGE 0xBFFF
/* Notification messages */ #define WRK_NEWINSTANCE (WRK_MINMESSAGE + 3)
#define WRK_DELETEINSTANCE (WRK_MINMESSAGE + 4)
#define WRK_CHANGEINSTANCE (WRK_MINMESSAGE + 5)
#define WRK_NEWTOOL (WRK_MINMESSAGE + 6)
#define WRK_DELETETOOL (WRK_MINMESSAGE + 7)
/* Control messages - instance related */ #define WRK_CLOSEINST (WRK_MINMESSAGE + 10)
#define WRK_ACTIVATEINST (WRK_MINMESSAGE + 11)
#define WRK_DEACTIVATEINST (WRK_MINMESSAGE + 12)
/* Control messages - resource related */ #define WRK_SETRESOURCE (WRK_MINMESSAGE + 19)
/* Flags for WRK_CHANGEINSTANCE message */ #define WRKINST_FLAGS 1L
#define WRKINST_TITLE 4L
#define WRKINST_HWND 8L
/*
* Workbench Error messages */ #define WRKERR_NOERROR (MMERR_MAXERROR + 0)
#define WRKERR_NOPROFWRITE (MMERR_MAXERROR + 1)
#define WRKERR_HANDLERNOTAVAIL (MMERR_MAXERROR + 10)
#define WRKERR_COULDNOTLOADMOD (MMERR_MAXERROR + 11)
#define WRKERR_USERCANCEL (MMERR_MAXERROR + 12)
#define WRKERR_NOLOADERSAVAIL (MMERR_MAXERROR + 13)
#define WRKERR_COULDNOTRUNTOOL (MMERR_MAXERROR + 14)
#define WRKERR_NOSAVERSAVAIL (MMERR_MAXERROR + 15)
#define WRKERR_UNNAMEDRES (MMERR_MAXERROR + 16)
#define WRKERR_NOCONVERTTOOL (MMERR_MAXERROR + 17)
#define WRKERR_ALREADYACCESSED (MMERR_MAXERROR + 18)
/* This endif must be the last line of the file */ #endif /* _WRKBENCH_H_ */
|