home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mmpm21tk.zip
/
TK
/
H
/
MINSTALL.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-04-21
|
24KB
|
437 lines
/********************** START OF SPECIFICATIONS ****************************/
/* */
/* Module Name: MInstall.h */
/* */
/* DESCRIPTIVE NAME: Defines for creation of Installation Device Specific */
/* Dlls. */
/* */
/* ABSTRACT: This file contains information necessary for the creation of */
/* device specific Dlls. A message based interface exists so */
/* that theses Dlls can do such things as change config.sys, */
/* update the MME.INI file, and create WPS Objects. */
/* */
/* Copyright (c) International Business Machines Corporation 1990,1991 */
/* All Rights Reserved */
/* */
/*********************** END OF SPECIFICATIONS *****************************/
#ifndef __MINSTALL_H_
#define __MINSTALL_H_
#define MAX_SETUP_STRING 1000 /* Longest setup string including */
/* expanded macros */
#define MAX_FOLDER_NAME 150 /* Longest desktop folder name */
#define MAX_RESPONSE_LENGTH 256 /* Max device specific DLL response */
/* XLATOFF */
#pragma pack(4)
/* XLATON */
/***************************************************************************/
/* This is a function pointer prototype that describes the entry point */
/* into the device specific DLL. */
/* */
/* Parameters: HWND - Owner handle. */
/* PSZ - Source path. */
/* PSZ - Destination Drive (drive letter, colon - eg. "X:") */
/* PSZ - Dll input parms in script file (DLL specific) */
/* HWND - Object window that receives message to do MCI and */
/* CONFIG.SYS work. */
/* PSZ - PSZ used for response file. (Is a CHAR [256] and */
/* used for IN/OUT) */
/***************************************************************************/
typedef ULONG APIENTRY VENDORFUNCTION(HWND,
PSZ,
PSZ,
PSZ,
HWND,
PSZ);
typedef VENDORFUNCTION * PVENDORFUNCTION;
/***************************************************************************/
/* MM_DISPATCHVARS and MM_DISPATCHMESSAGES() are two macros used by Device */
/* specific DLL's to keep the user interface responsive while they are */
/* doing updates to MME.INI, config.sys, etc . . . This is necessary */
/* because the device specific dll's are executing in install's msg queue */
/* thread (thread 1). */
/* */
/* MM_DISPATCHVARS should be declared in the scope required for the */
/* MM_DISPATCHMESSAGES() macro to use them. */
/* */
/* MM_DISPATHMESSAGES() should be used before and after every I/O intensive*/
/* operation. */
/* */
/* An example would be: */
/* */
/* void IOIntensive() */
/* { */
/* MM_DISPATCHVARS; */
/* */
/* MM_DISPATHMESSAGES(); */
/* DiskIO(); */
/* MM_DISPATHMESSAGES(); */
/* } */
/* */
/* Please set the mouse pointer to SPTR_WAIT during operations lasting */
/* than 1 second. */
/***************************************************************************/
#define MM_DISPATCHVARS HAB MM_hab_ = WinQueryAnchorBlock(HWND_DESKTOP);\
QMSG MM_qmsg_
#define MM_DISPATCHMESSAGES() while (WinPeekMsg(MM_hab_, \
&MM_qmsg_, \
(HWND)NULL, \
0, \
0, \
PM_NOREMOVE)) \
{ \
WinGetMsg(MM_hab_, &MM_qmsg_, NULL, 0, 0);\
WinDispatchMsg(MM_hab_, &MM_qmsg_); \
}
/***************************************************************************/
/* IM_MCI_EXTENDED_SYSINFO - Maps to MCI_SYSINFO. */
/* */
/* mp1 = msg; */
/* mp2 = pvoid; */
/* */
/* This will map to: */
/* sysinfo.dwItem = (ULONG)LONGFROMMP(mp1); */
/* sysinfo.pSysInfoParm = PVOIDFROMMP(mp2); */
/* mciSendCommand((USHORT)0, */
/* (USHORT)MCI_SYSINFO, */
/* (ULONG)MCI_SYSINFO_ITEM, */
/* (ULONG)&sysinfo, */
/* (USHORT)0); */
/***************************************************************************/
#define IM_MCI_EXTENDED_SYSINFO 0x057E
/* XLATOFF */
#pragma pack(1)
/* XLATON */
typedef struct _INSTIOPROC
{
CHAR fccIOProc[5];
CHAR szDLLName[CCHMAXPATH];
CHAR szProcName[32]; /* [128] */
ULONG ulFlags; /* feature 5508 */
ULONG ulExtendLen; /* feature 5508 */
ULONG ulMediaType; /* feature 5508 */
ULONG ulIOProcType; /* feature 5508 */
CHAR szDefExt[4]; /* feature 5508 */
} INSTIOPROC;
typedef INSTIOPROC *PINSTIOPROC;
typedef struct _INSTCODECINIFILEINFO /* codecinifileinfo */
{ /* feature 5572 */
ULONG ulStructLen; /* length of this structure */
/* feature 5572 */
CHAR fcc[5]; /* File Format ID */
/* feature 5572 */
CHAR szDLLName[CCHMAXPATH]; /* DLL name string */
/* feature 5572 */
CHAR szProcName[32]; /* Procedure name string */
/* feature 5572 */
/* ULONG ulCompressType; */ /* Compression Type */
union
/* feature 5572 */
{
ULONG ulCodecCompType;
/* feature 5572 */
CHAR fccCodecCompType[5];
} x;
/* feature 5572 */
ULONG ulCompressSubType; /* Compression SubType */
/* feature 5572 */
ULONG ulMediaType; /* Media type */
/* feature 5572 */
ULONG ulCapsFlags; /* capabilities flags */
/* feature 5572 */
ULONG ulFlags; /* flags */
/* feature 5572 */
CHAR szHWID[32]; /* specific information */
/* feature 5572 */
ULONG ulMaxSrcBufLen; /* max source buffer length */
/* feature 5572 */
ULONG ulSyncMethod; /* Synchronization method */
/* feature 5572 */
ULONG ulReserved1; /* Reserved1 */
/* feature 5572 */
ULONG ulXalignment; /* x alignment - video only */
/* feature 5572 */
ULONG ulYalignment; /* y alignment - video only */
/* feature 5572 */
CHAR szSpecInfo[32]; /* specific information */
/* feature 5572 */
} INSTCODECINIFILEINFO;
/* feature 5572 */
typedef INSTCODECINIFILEINFO * PINSTCODECINIFILEINFO;
/* feature 5572 */
/* XLATOFF */
#pragma pack( )
/* XLATON */
/***************************************************************************/
/* IM_MMIO_INSTALL - Install an IO-Proc */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = (PINSTIOPROC)&instioproc; ** pointer to the INSTIOPROC struct */
/***************************************************************************/
#define IM_MMIO_INSTALL 0x057F
/***************************************************************************/
/* IM_SPI_INSTALL - Install stream protocol information */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = (PSZ)pszDllPath; ** Fully qualified path of a SPI resource DLL */
/***************************************************************************/
#define IM_SPI_INSTALL 0x0580
#define INST_MAXCLASSNAME 256
#define INST_MAXTITLE 256
#define INST_MAXSETUPSTRING 1024
#define INST_MAXLOCATION 256
typedef struct _INSTOBJECTDATA
{
CHAR achClassName[INST_MAXCLASSNAME];
CHAR achTitle[INST_MAXTITLE];
CHAR achSetupString[INST_MAXSETUPSTRING];
CHAR achLocation[INST_MAXLOCATION];
ULONG ulFlags;
} INSTOBJECTDATA;
typedef INSTOBJECTDATA *PINSTOBJECTDATA;
/***************************************************************************/
/* IM_CREATE_WPS_OBJECT - Install a folder and its contents */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(pinstOBJECTdata); */
/***************************************************************************/
#define IM_CREATE_WPS_OBJECT 0x0571
/***************************************************************************/
/* IM_DESTROY_WPS_OBJECT - Install a folder and its contents */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(HOBJECT); ** or "<OBJECT_ID>" */
/***************************************************************************/
#define IM_DESTROY_WPS_OBJECT 0x0572
/***************************************************************************/
/* IM_LOG_ERROR - Write a message to the log file. */
/* */
/* mp1 = (PSZ)pszStatement; ** Should end with a '\n' and be NULL */
/* ** terminated */
/* mp2 = 0; ** Unused */
/***************************************************************************/
#define IM_LOG_ERROR 0x0573
/***************************************************************************/
/* CONFIGDATA - Pointer to this structure is passed in mp1 in all CONFIG */
/* messages. */
/***************************************************************************/
typedef struct _CONFIGDATA
{
LONG lLine;
LONG lBufferLen;
PSZ pszBuffer;
BOOL fAdd;
} CONFIGDATA;
typedef CONFIGDATA *PCONFIGDATA;
/***************************************************************************/
/* IM_CONFIGENUMERATE - Get a line from the config.sys file. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGENUMERATE 0x0574
/***************************************************************************/
/* IM_CONFIGUPDATE - Update an entry in the config.sys file. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGUPDATE 0x0575
/***************************************************************************/
/* IM_CONFIGMERGE - Merge data into an existing config.sys entry. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGMERGE 0x0576
/***************************************************************************/
/* IM_CONFIGEREPLACE - Replace an entry that exists in config.sys. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGREPLACE 0x0577
/***************************************************************************/
/* IM_CONFIGNEW - Add a line to the config.sys file. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGNEW 0x0578
/***************************************************************************/
/* IM_CONFIGDELETE - Delete a line (REM it out) from the config.sys file. */
/* */
/* mp1 = (PCONFIGDATA)pconfdata; */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGDELETE 0x0579
/***************************************************************************/
/* IM_CONFIGQUERYCHANGED - Returns TRUE if config.sys has changed else */
/* FALSE. */
/* */
/* mp1 = 0 */
/* mp2 = 0 */
/***************************************************************************/
#define IM_CONFIGQUERYCHANGED 0x057A
typedef struct _MIDIMAPINSTALLDATA
{
CHAR achIniName[CCHMAXPATH];
CHAR achAppName[1024];
CHAR achKeyName[1024];
CHAR achDllName[CCHMAXPATH];
ULONG ulResourceID;
} MIDIMAPINSTALLDATA;
typedef MIDIMAPINSTALLDATA *PMIDIMAPINSTALLDATA;
/***************************************************************************/
/* IM_MIDIMAP_INSTALL - Install a midi map. */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(pmidimapinstalldata); */
/* */
/* Return 0 on success, else error occurred. */
/***************************************************************************/
#define IM_MIDIMAP_INSTALL 0x057B
typedef struct _INSTMCISENDCOMMAND
{
USHORT wDeviceID;
USHORT wMessage;
ULONG dwParam1;
ULONG dwParam2;
USHORT wUserParm;
} INSTMCISENDCOMMAND;
typedef INSTMCISENDCOMMAND *PINSTMCISENDCOMMAND;
/***************************************************************************/
/* IM_MCI_SEND_COMMAND - Send an MCI command */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(PINSTMCISENDCOMMAND); */
/* */
/* Return mciSendCommand result. */
/***************************************************************************/
#define IM_MCI_SEND_COMMAND 0x057C
typedef struct _INSTEAJOIN
{
CHAR achFileName[CCHMAXPATH];
CHAR achEAFileName[CCHMAXPATH];
} INSTEAJOIN;
typedef INSTEAJOIN *PINSTEAJOIN;
/***************************************************************************/
/* IM_EA_JOIN */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(PINSTEAJOIN); */
/* */
/* Return EA join result. */
/***************************************************************************/
#define IM_EA_JOIN 0x057D
typedef struct _INSTEALONGNAMEJOIN
{
CHAR achLongName[CCHMAXPATH];
CHAR achLongFileName[CCHMAXPATH];
CHAR achEALongFileName[CCHMAXPATH];
} INSTEALONGNAMEJOIN;
typedef INSTEALONGNAMEJOIN *PINSTEALONGNAMEJOIN;
/***************************************************************************/
/* IM_EA_LONG_NAME_JOIN */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = MPFROMP(PINSTEALONGNAMEJOIN); */
/* */
/* Return EA long name creation result. */
/***************************************************************************/
#define IM_EA_LONG_NAME_JOIN 0x0581
/* feature 6302 */
#define IM_QUERYPATH 0x0582
/***************************************************************************/
/* IM_CODECINSTALL - Install a Codec-Proc */
/* */
/* mp1 = 0; ** Not used */
/* mp2 = (PINSTCODECINIFILEINFO)&instioproc; */
/* ** pointer to the INSTIOPROC struct */
/* /* feature 5572 */
/***************************************************************************/
#define IM_CODEC1INSTALL 0x0583
/* feature 5572 */
#define IM_CODEC2INSTALL 0x0584
/* feature 5572 */
#ifndef NO_ERROR
#define NO_ERROR 0
#endif
#define CFGERR_BASE 0xFF00
#define CFGERR_START (CFGERR_BASE + 1)
#define CFGERR_OPENFAILED (CFGERR_START + 1)
#define CFGERR_OUTOFMEMORY (CFGERR_START + 2)
#define CFGERR_INVALIDPARAMETER (CFGERR_START + 3)
#define CFGERR_INVALIDENUMFLAG (CFGERR_START + 4)
#define CFGERR_ATTOP (CFGERR_START + 5)
#define CFGERR_ATBOTTOM (CFGERR_START + 6)
#define CFGERR_BUFFEROVERFLOW (CFGERR_START + 7)
#define CFGERR_LINENOTFOUND (CFGERR_START + 8)
#define CFGERR_CANTPARSEBUFFER (CFGERR_START + 9)
#define CFGERR_VARIABLENOTFOUND (CFGERR_START + 10)
/* Line positions */
#define CONFIG_TOP -1
#define CONFIG_BOTTOM -2
#define CONFIG_NEXT -3
#define CONFIG_PREV -4
#define CONFIG_CURRENT -5
/* XLATOFF */
#pragma pack( )
/* XLATON */
#endif /* #ifndef __MINSTALL_H_ */