246 lines
7.6 KiB
C
246 lines
7.6 KiB
C
|
/* (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_ */
|