mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-17 20:02:35 +02:00
* mmtk directory corrected to lowercase
This commit is contained in:
parent
4fadaff606
commit
302a815e70
File diff suppressed because it is too large
Load Diff
@ -1,25 +0,0 @@
|
||||
#
|
||||
# Makefile.fpc for the Multimedia Toolkit (interface units for MMPM)
|
||||
#
|
||||
|
||||
[package]
|
||||
name=mmtk
|
||||
version=1.0.6
|
||||
|
||||
[target]
|
||||
units=mmbase sw dive mci mciapi mcidrv mmio
|
||||
|
||||
exampledirs=tests
|
||||
|
||||
[install]
|
||||
fpcpackage=y
|
||||
|
||||
[default]
|
||||
fpcdir=../../../..
|
||||
|
||||
[rules]
|
||||
dive$(PPUEXT) : dive.pas mmbase$(PPUEXT)
|
||||
|
||||
mci$(PPUEXT) : mci.pas mmbase$(PPUEXT)
|
||||
|
||||
mmio$(PPUEXT) : mmio.pas mmbase$(PPUEXT)
|
@ -1,17 +0,0 @@
|
||||
Unit Buildall;
|
||||
|
||||
Interface
|
||||
|
||||
Uses
|
||||
sw,
|
||||
mmbase,
|
||||
dive,
|
||||
hwvideo,
|
||||
mci,
|
||||
mciapi,
|
||||
mcidrv,
|
||||
mmio;
|
||||
|
||||
Implementation
|
||||
|
||||
End.
|
@ -1,335 +0,0 @@
|
||||
{****************************************************************************
|
||||
|
||||
$Id$
|
||||
|
||||
DIVE interface unit
|
||||
FPC Pascal Runtime Library for OS/2
|
||||
Copyright (c) 1999-2000 by Karoly Balogh (aka Charlie/INQ)
|
||||
|
||||
The FPC Pascal runtime library is distributed under the Library GNU Public
|
||||
License v2. So is this unit. The Library GNU Public License requires you to
|
||||
distribute the source code of this unit with any product that uses it.
|
||||
Because the EMX library isn't under the LGPL, we grant you an exception to
|
||||
this, and that is, when you compile a program with the Free Pascal Compiler,
|
||||
you do not need to ship source code with that program, AS LONG AS YOU ARE
|
||||
USING UNMODIFIED CODE! If you modify this code, you MUST change the next
|
||||
line:
|
||||
|
||||
<This an official, unmodified Free Pascal source code file.>
|
||||
|
||||
Send us your modified files, we can work together if you want!
|
||||
|
||||
Free Pascal is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
Library GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the Library GNU General Public License
|
||||
along with Free Pascal; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
|
||||
****************************************************************************}
|
||||
|
||||
Unit DIVE;
|
||||
|
||||
{Warning: This code is alfa. Future versions of this unit will propably
|
||||
not be compatible.}
|
||||
|
||||
Interface
|
||||
|
||||
Uses OS2Def, PMWin, MMBase;
|
||||
|
||||
Const Max_Dive_Instances = 64;
|
||||
|
||||
DIVE_Success = $00000000;
|
||||
DIVE_Err_Invalid_Instance = $00001000;
|
||||
DIVE_Err_Source_Format = $00001001;
|
||||
DIVE_Err_Destination_Format = $00001002;
|
||||
DIVE_Err_Blitter_Not_Setup = $00001003;
|
||||
DIVE_Err_Insufficient_Length = $00001004;
|
||||
DIVE_Err_Too_Many_Instances = $00001005;
|
||||
DIVE_Err_No_Direct_Access = $00001006;
|
||||
DIVE_Err_Not_Bank_Switched = $00001007;
|
||||
DIVE_Err_Invalid_Bank_Number = $00001008;
|
||||
DIVE_Err_FB_Not_Acquired = $00001009;
|
||||
DIVE_Err_FB_Already_Acquired = $0000100A;
|
||||
DIVE_Err_Acquire_Failed = $0000100B;
|
||||
DIVE_Err_Bank_Switch_Failed = $0000100C;
|
||||
DIVE_Err_Deacquire_Failed = $0000100D;
|
||||
DIVE_Err_Invalid_Palette = $0000100E;
|
||||
DIVE_Err_Invalid_Destination_RECTL = $0000100F;
|
||||
DIVE_Err_Invalid_Buffer_Number = $00001010;
|
||||
DIVE_Err_SSMDD_Not_Installed = $00001011;
|
||||
DIVE_Err_Buffer_Already_Accessed = $00001012;
|
||||
DIVE_Err_Buffer_Not_Accessed = $00001013;
|
||||
DIVE_Err_Too_Many_Bufffers = $00001014;
|
||||
DIVE_Err_Allocation_Error = $00001015;
|
||||
DIVE_Err_Invalid_Linesize = $00001016;
|
||||
DIVE_Err_Fatal_Exception = $00001017;
|
||||
DIVE_Err_Invalid_Conversion = $00001018;
|
||||
DIVE_Err_VSD_Error = $00001019;
|
||||
DIVE_Err_Color_Support = $0000101A;
|
||||
DIVE_Err_Out_Of_Range = $0000101B;
|
||||
DIVE_Warn_No_Size = $00001100;
|
||||
|
||||
DIVE_Buffer_Screen = $00000000;
|
||||
DIVE_Buffer_Graphics_Plane = $00000001;
|
||||
DIVE_Buffer_Alternate_Plane = $00000002;
|
||||
|
||||
DIVE_Fully_Visible = $FFFFFFFF;
|
||||
|
||||
{ * Use either of the two defines as the bRGB2Entries pointer to have DIVE * }
|
||||
{ * query and set the physical or default palette as source or destination. * }
|
||||
|
||||
DIVE_Palette_Physical = $00000000;
|
||||
DIVE_Palette_Default = $FFFFFFFF;
|
||||
|
||||
Type HDIVE = cardinal;
|
||||
|
||||
{ * Blitter setup structures * }
|
||||
TSetup_Blitter = Record
|
||||
ulStructLen : cardinal; { * ulStructLen tells how much of the structure is used. * }
|
||||
{ * Comments here show appropriate values, so don't count ;) * }
|
||||
|
||||
fInvert : cardinal; { * Image is inverted on blit * }
|
||||
{ * fInvert use: * }
|
||||
{ * %0001 = 01 = $01 horizontal flip * }
|
||||
{ * %0010 = 02 = $02 vertical flip * }
|
||||
|
||||
{ * This is the mark for 8 bytes * }
|
||||
|
||||
fccSrcColorFormat : FourCC; { * Source data format * }
|
||||
ulSrcWidth : cardinal; { * Width in pels * }
|
||||
ulSrcHeight : cardinal; { * Height in pels * }
|
||||
{ * The following are for displaying a sub-portion of the image. * }
|
||||
ulSrcPosX : cardinal; { * X Position of source data * }
|
||||
ulSrcPosY : cardinal; { * Y Position of source data * }
|
||||
|
||||
{ * This is the mark for 28 bytes * }
|
||||
|
||||
ulDitherType : cardinal; { * Dither type * }
|
||||
|
||||
{ * 32 byte mark * }
|
||||
|
||||
fccDstColorFormat : FourCC; { * Destination color format * }
|
||||
ulDstWidth : cardinal; { * Destination width in pels * }
|
||||
ulDstHeight : cardinal; { * Destination height in pels * }
|
||||
lDstPosX : LongInt;
|
||||
lDstPosY : LongInt;
|
||||
|
||||
{ * 52 byte mark * }
|
||||
|
||||
lScreenPosX : LongInt;
|
||||
lScreenPosY : LongInt;
|
||||
|
||||
{ * 60 byte mark * }
|
||||
|
||||
ulNumDstRects : cardinal;
|
||||
pVisDstRects : PRectl; { * This is a pointer to an array of visible rectangles. * }
|
||||
|
||||
{ * 68 bytes = fully used * }
|
||||
End;
|
||||
|
||||
PSetup_Blitter = ^TSetup_Blitter;
|
||||
|
||||
{ * Stuff for DiveQueryCaps() * }
|
||||
TDIVE_CAPS = Record
|
||||
ulStructLen : cardinal; { * SizeOf(TDIVE_CAPS) * }
|
||||
ulPlaneCount : cardinal; { * Number of defined planes * }
|
||||
|
||||
{ * Following info applies to ulPlaneID * }
|
||||
fScreenDirect : Boolean; { * Direct screen access (was type BOOL in C) * }
|
||||
fBankSwitched : Boolean; { * VRAM bank-switched? (was type BOOL in C) * }
|
||||
ulDepth : cardinal; { * Number of bits per pixel * }
|
||||
ulHorizontalResolution : cardinal;
|
||||
ulVerticalResolution : cardinal;
|
||||
ulScanLineBytes : cardinal;
|
||||
fccColorEncoding : FourCC;
|
||||
ulApertureSize : cardinal;
|
||||
|
||||
ulInputFormats : cardinal; { * Number of input color formats * }
|
||||
ulOutputFormats : cardinal;
|
||||
ulFormatLength : cardinal; { * Length of format buffer * }
|
||||
pFormatData : Pointer; { * Pointer to format buffer of FOURCC's * }
|
||||
End;
|
||||
|
||||
PDIVE_CAPS = ^TDIVE_CAPS;
|
||||
|
||||
Function DiveQueryCaps(DiveCaps: PDIVE_CAPS; ulPlaneBufNum : cardinal) : cardinal; cdecl;
|
||||
|
||||
Function DiveOpen(Var phDiveInst : cardinal; fNonScreenInstance : cardinal;
|
||||
Var ppFrameBuffer : Pointer) : cardinal; cdecl;
|
||||
Function DiveClose(hDiveInst : cardinal) : cardinal; cdecl;
|
||||
|
||||
Function DiveSetupBlitter(hDiveInst : cardinal; pSetupBlitter : PSetup_Blitter) : cardinal; cdecl;
|
||||
Function DiveBlitImage(hDiveInst : cardinal; ulSrcBufNumber : cardinal; ulDstBufNumber : cardinal) : cardinal; cdecl;
|
||||
|
||||
Function DiveAcquireFrameBuffer(hDiveInst : cardinal; prectlDst : PRectl) : cardinal; cdecl;
|
||||
Function DiveDeacquireFrameBuffer(hDiveInst : cardinal) : cardinal; cdecl;
|
||||
Function DiveCalcFrameBufferAddress(hDiveInst : cardinal;
|
||||
prectlDest : PRectl;
|
||||
Var pDestinationAddress : Pointer;
|
||||
Var ulBankNumber : cardinal;
|
||||
Var ulRemLinesInBank : cardinal) : cardinal; cdecl;
|
||||
Function DiveSwitchBank(hDiveInst : cardinal; ulBankNumber : cardinal) : cardinal; cdecl;
|
||||
|
||||
{ Notes on DiveAllocImageBuffer:
|
||||
If pbImageBuffer is not NULL, the buffer is associated rather than
|
||||
allocated. If pbImageBuffer is not NULL and the buffer number
|
||||
pointed to by pulBufferNumber is non-zero, a new buffer pointer is
|
||||
associated with the buffer number. Even though no memory is
|
||||
allocated by DiveAllocImageBuffer when user-allocated buffers are
|
||||
associated, DiveFreeImageBuffer should be called to release the
|
||||
buffer association to avoid using up available buffer indexes.
|
||||
The specified line size will be used if a buffer is allocated in
|
||||
system memory, or if a user buffer is associated. If the
|
||||
specified line size is zero, the allocated line size is rounded up
|
||||
to the nearest DWORD boundry. }
|
||||
|
||||
Function DiveAllocImageBuffer(hDiveInst : cardinal;
|
||||
Var ulBufferNumber : cardinal;
|
||||
fccColorSpace : FourCC;
|
||||
ulWidth : cardinal;
|
||||
ulHeight : cardinal;
|
||||
ulLineSizeBytes : cardinal;
|
||||
Var bImageBuffer : Pointer) : cardinal; cdecl;
|
||||
Function DiveFreeImageBuffer(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
|
||||
|
||||
Function DiveBeginImageBufferAccess(hDiveInst : cardinal;
|
||||
ulBufferNumber : cardinal;
|
||||
Var pbImageBuffer : Pointer;
|
||||
Var ulBufferScanLineBytes : cardinal;
|
||||
Var ulBufferScanLines : cardinal) : cardinal; cdecl;
|
||||
Function DiveEndImageBufferAccess(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
|
||||
|
||||
|
||||
{/* Notes on palettes:
|
||||
Neither DiveSetSourcePalette nor DiveSetDestinationPalette API's will set
|
||||
the physical palette. If your application MUST set the PHYSICAL palette,
|
||||
try using no more than 236 entries (the middle 236: 10-245, thus leaving
|
||||
the top and bottom 10 entries for the Workplace Shell). If your
|
||||
application MUST use ALL 256 entries, it must do so as a full-screen
|
||||
(i.e. maximized) application. Remember, No WM_REALIZEPALETTE message
|
||||
will be sent to other running applications, meaning they will not redraw
|
||||
and their colors will be all wrong. It is not recommended that a
|
||||
developer use these commands:
|
||||
|
||||
To set physical palette, do the following:
|
||||
hps = WinGetPS ( HWND_DESKTOP );
|
||||
hdc = GpiQueryDevice ( hps );
|
||||
GpiCreateLogColorTable ( hps, LCOL_PURECOLOR | LCOL_REALIZABLE,
|
||||
LCOLF_CONSECRGB, 0, 256, (PLONG)plRGB2Entries );
|
||||
Gre32EntrY3 ( hdc, 0L, 0x000060C6L );
|
||||
WinInvalidateRect ( HWND_DESKTOP, (PRECTL)NULL, TRUE );
|
||||
WinReleasePS ( hps );
|
||||
|
||||
To reset physical palette, do the following:
|
||||
hps = WinGetPS ( HWND_DESKTOP );
|
||||
hdc = GpiQueryDevice ( hps );
|
||||
Gre32EntrY3 ( hdc, 0L, 0x000060C7L );
|
||||
WinInvalidateRect ( HWND_DESKTOP, (PRECTL)NULL, TRUE );
|
||||
WinReleasePS ( hps );
|
||||
*/}
|
||||
|
||||
Function DiveSetDestinationPalette(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulNumEntries : cardinal;
|
||||
Var bRGB2Entries : Pointer) : cardinal; cdecl;
|
||||
|
||||
Function DiveSetSourcePalette(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulNumEntries : cardinal;
|
||||
Var bRGB2Entries : Pointer) : cardinal; cdecl;
|
||||
|
||||
Function DiveSetTransparentBlitMode(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulValue1 : cardinal;
|
||||
ulValue2 : cardinal) : cardinal; cdecl;
|
||||
|
||||
Implementation
|
||||
|
||||
Function DiveQueryCaps(DiveCaps : PDIVE_CAPS; ulPlaneBufNum : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 1;
|
||||
|
||||
Function DiveOpen(Var phDiveInst : cardinal; fNonScreenInstance : cardinal; Var ppFrameBuffer : Pointer) : cardinal; cdecl;
|
||||
External 'DIVE' Index 2;
|
||||
|
||||
Function DiveClose(hDiveInst : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 3;
|
||||
|
||||
Function DiveSetupBlitter(hDiveInst : cardinal; pSetupBlitter : PSetup_Blitter) : cardinal; cdecl;
|
||||
External 'DIVE' Index 4;
|
||||
|
||||
Function DiveBlitImage(hDiveInst : cardinal; ulSrcBufNumber : cardinal; ulDstBufNumber : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 5;
|
||||
|
||||
Function DiveAcquireFrameBuffer(hDiveInst : cardinal; prectlDst : PRectl) : cardinal; cdecl;
|
||||
External 'DIVE' Index 6;
|
||||
|
||||
Function DiveDeacquireFrameBuffer(hDiveInst : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 8;
|
||||
|
||||
Function DiveCalcFrameBufferAddress(hDiveInst : cardinal;
|
||||
prectlDest : PRectl;
|
||||
Var pDestinationAddress : Pointer;
|
||||
Var ulBankNumber : cardinal;
|
||||
Var ulRemLinesInBank : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 11;
|
||||
|
||||
Function DiveSwitchBank(hDiveInst : cardinal; ulBankNumber : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 7;
|
||||
|
||||
|
||||
Function DiveAllocImageBuffer(hDiveInst : cardinal;
|
||||
Var ulBufferNumber : cardinal;
|
||||
fccColorSpace : FourCC;
|
||||
ulWidth : cardinal;
|
||||
ulHeight : cardinal;
|
||||
ulLineSizeBytes : cardinal;
|
||||
Var bImageBuffer : Pointer) : cardinal; cdecl;
|
||||
External 'DIVE' Index 12;
|
||||
|
||||
Function DiveFreeImageBuffer(hDiveInst : cardinal;
|
||||
ulBufferNumber : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 13;
|
||||
|
||||
Function DiveBeginImageBufferAccess(hDiveInst : cardinal;
|
||||
ulBufferNumber : cardinal;
|
||||
Var pbImageBuffer : Pointer;
|
||||
Var ulBufferScanLineBytes : cardinal;
|
||||
Var ulBufferScanLines : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 14;
|
||||
|
||||
Function DiveEndImageBufferAccess(hDiveInst : cardinal; ulBufferNumber : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 15;
|
||||
|
||||
Function DiveSetDestinationPalette(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulNumEntries : cardinal;
|
||||
Var bRGB2Entries : Pointer) : cardinal; cdecl;
|
||||
External 'DIVE' Index 9;
|
||||
|
||||
Function DiveSetSourcePalette(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulNumEntries : cardinal;
|
||||
Var bRGB2Entries : Pointer) : cardinal; cdecl;
|
||||
External 'DIVE' Index 10;
|
||||
|
||||
Function DiveSetTransparentBlitMode(hDiveInst : cardinal;
|
||||
ulStartIndex : cardinal;
|
||||
ulValue1 : cardinal;
|
||||
ulValue2 : cardinal) : cardinal; cdecl;
|
||||
External 'DIVE' Index 18;
|
||||
|
||||
End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-02-15 16:59:09 hajny
|
||||
* mmtk directory corrected to lowercase
|
||||
|
||||
Revision 1.1 2003/02/09 13:49:06 hajny
|
||||
+ mmtk added
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,134 +0,0 @@
|
||||
{
|
||||
$Id$
|
||||
Copyright (c) 1992, 1993 by International Business Machines Corporation
|
||||
Copyright (c) 2002 by Andry Svirgunov (cool2@ngs.ru)
|
||||
Copyright (c) 2002-2003 by Yuri Prokushev (prokushev@freemail.ru)
|
||||
|
||||
High-Level MCI Interfaces of OS/2 Multimedia subsystem
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License (LGPL) as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version. This program is
|
||||
distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU Library General Public License for more details. You should
|
||||
have received a copy of the GNU Library General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{
|
||||
@abstract(High-Level MCI Interfaces of OS/2 Multimedia subsystem)
|
||||
@author(Andry Svirgunov (cool2@ngs.ru))
|
||||
@author(Yuri Prokushev (prokushev@freemail.ru))
|
||||
@created(01 Oct 2002)
|
||||
@lastmod(19 Jan 2003)
|
||||
This is the High-Level Macro Service API Routines of OS/2 Multimedia subsystem.
|
||||
All functions are from MCIAPI dll (which also contains REXX functions.
|
||||
See "Multimedia with REXX" for more information.).
|
||||
Warning: This code is alfa. Future versions of this unit will propably
|
||||
not be compatible.
|
||||
}
|
||||
Unit mciapi;
|
||||
|
||||
{$MODE ObjFPC}
|
||||
|
||||
Interface
|
||||
|
||||
// Flags for mciPlayFile
|
||||
Const
|
||||
// digital and overlay
|
||||
MCI_OWNERISPARENT = $0001;
|
||||
// stop playing whatever is playing
|
||||
MCI_STOPACTIVE = $0002;
|
||||
// play and return immediately
|
||||
MCI_ASYNCRENDEZVOUS = $0004;
|
||||
// wait til prev is finished then play
|
||||
MCI_RENDEZVOUS = $0008;
|
||||
// no syncup will be done
|
||||
MCI_ASYNC = $0010;
|
||||
|
||||
{
|
||||
This function plays a multimedia data file (video, audio) using MCI commands.
|
||||
hwndOwner is handle of owner window. If hwndOwner equial to zero used active
|
||||
window.
|
||||
pszFile is pointer to asciiz name of data file. For compound files can be
|
||||
used 'filename+element'.
|
||||
ulFlags is MCI_* flags.
|
||||
pszTitle is title of generated window (e.g. for video). Ignored if not generated.
|
||||
hwndViewport is handle of window for displaying video. If none, then default
|
||||
window displayed.
|
||||
}
|
||||
Function mciPlayFile(hwndOwner: Cardinal; // Ownerwindow
|
||||
pszFile: PChar; // File
|
||||
ulFlags: Cardinal; // Flags
|
||||
pszTitle: PChar; // Title
|
||||
hwndViewport: Cardinal): // Viewport Window
|
||||
Cardinal; cdecl;
|
||||
|
||||
Function mciPlayResource(hwndOwner: Cardinal; // Owner Window
|
||||
hmod: LongInt; // Module
|
||||
resType: LongInt; // Resource Type
|
||||
resID: LongInt; // Resource ID
|
||||
ulFlags: Cardinal; // Flags
|
||||
pszTitle: PChar; // Title
|
||||
hwndViewport: Cardinal): // Viewport Window
|
||||
Cardinal; cdecl;
|
||||
|
||||
Function mciRecordAudioFile(hwndOwner: Cardinal;
|
||||
pszFile,
|
||||
pszTitle: PChar;
|
||||
ulFlags: Cardinal):
|
||||
Cardinal; cdecl;
|
||||
|
||||
// Audio Macro Service Constants and Routines
|
||||
|
||||
Const
|
||||
MMIO_FE_FINDFIRST = 1;
|
||||
MMIO_FE_FINDNEXT = 2;
|
||||
MMIO_FE_FINDEND = 3;
|
||||
MMIO_FE_FINDELEMENT = 4;
|
||||
|
||||
MMIO_RE_COMPACT = 1;
|
||||
|
||||
Function mmioRemoveElement(pszFileElement: pChar;
|
||||
ulFlag: LongInt):
|
||||
Cardinal; cdecl;
|
||||
|
||||
Function mmioFindElement(ulCode: LongInt; // Find Code
|
||||
pszElement: PChar; // Element
|
||||
ulElementLen: LongInt; // Element Buffer Length
|
||||
pszFile: PChar;
|
||||
ulReserved: LongInt): // Compound File
|
||||
Cardinal; cdecl;
|
||||
|
||||
|
||||
|
||||
Implementation
|
||||
|
||||
Function mciPlayFile(hwndOwner: Cardinal; pszFile: PChar; ulFlags: Cardinal; pszTitle: PChar; hwndViewport: Cardinal): Cardinal; cdecl;
|
||||
external 'MCIAPI' index 10;
|
||||
Function mciPlayResource(hwndOwner: Cardinal; hmod: LongInt; resType: LongInt; resID: LongInt; ulFlags: Cardinal; pszTitle: PChar; hwndViewport: Cardinal): Cardinal; cdecl;
|
||||
external 'MCIAPI' index 11;
|
||||
Function mciRecordAudioFile(hwndOwner: Cardinal; pszFile, pszTitle: PChar; ulFlags: Cardinal): Cardinal; cdecl;
|
||||
external 'MCIAPI' index 12;
|
||||
Function mmioRemoveElement(pszFileElement: PChar; ulFlag: LongInt): Cardinal; cdecl;
|
||||
external 'MCIAPI' index 16;
|
||||
Function mmioFindElement(ulCode: LongInt; pszElement: PChar; ulElementLen: LongInt; pszFile: PChar; ulReserved: LongInt): Cardinal; cdecl;
|
||||
external 'MCIAPI' index 18;
|
||||
|
||||
end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-02-15 16:59:09 hajny
|
||||
* mmtk directory corrected to lowercase
|
||||
|
||||
Revision 1.1 2003/02/09 13:49:06 hajny
|
||||
+ mmtk added
|
||||
|
||||
}
|
@ -1,369 +0,0 @@
|
||||
{
|
||||
$Id$
|
||||
Copyright (c) 1991, 1992 by International Business Machines Corporation
|
||||
Copyright (c) 2002 by Andry Svirgunov (cool2@ngs.ru)
|
||||
Copyright (c) 2002-2003 by Yuri Prokushev (prokushev@freemail.ru)
|
||||
|
||||
MCI drivers interface
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License (LGPL) as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version. This program is
|
||||
distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU Library General Public License for more details. You should
|
||||
have received a copy of the GNU Library General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{
|
||||
@abstract(MCI drivers interface)
|
||||
@author(Andry Svirgunov (cool2@ngs.ru))
|
||||
@author(Yuri Prokushev (prokushev@freemail.ru))
|
||||
@created(01 Oct 2002)
|
||||
@lastmod(19 Jan 2003)
|
||||
MCI drivers interface
|
||||
Warning: This code is alfa. Future versions of this unit will propably
|
||||
not be compatible.
|
||||
}
|
||||
Unit mcidrv;
|
||||
|
||||
Interface
|
||||
|
||||
Type
|
||||
GID=Integer;
|
||||
|
||||
///**************************************************************************/
|
||||
// MCI Driver message identifiers */
|
||||
///**************************************************************************/
|
||||
const
|
||||
MCIDRV_SAVE = 900;
|
||||
MCIDRV_RESTORE = 901;
|
||||
MCIDRV_SYNC = 902;
|
||||
MCIDRV_CHANGERESOURCE = 903;
|
||||
MCIDRV_CONNECT = 904;
|
||||
MCIDRV_ASSOCIATE = 905;
|
||||
MCIDRV_DISCONNECT = 906;
|
||||
MCIDRV_TEST_CONNECTION = 907;
|
||||
MCIDRV_START = 908;
|
||||
MCIDRV_SEEK = 909;
|
||||
MCIDRV_STOP = 910;
|
||||
MCIDRV_MODIFY_CONNECTION = 911;
|
||||
MCIDRV_INIT_CONNECTION = 912;
|
||||
MCIDRV_DEINIT_CONNECTION = 913;
|
||||
MCIDRV_ENABLE_EVENT = 915;
|
||||
MCIDRV_GETTIME = 917;
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by the MCIDRV_CONNECT message */
|
||||
///*******************************************************************/
|
||||
|
||||
MCIDRV_CONNECT_TARGET = $00010000;
|
||||
MCIDRV_CONNECT_SOURCE = $00020000;
|
||||
MCIDRV_SET_CONNNECTOR_TYPE = $00040000;
|
||||
MCIDRV_CHANGE_SEM = $00080000;
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by MCIDRV_MODIFY_CONNECTION */
|
||||
///*******************************************************************/
|
||||
|
||||
|
||||
MCIDRV_MODIFY_10 =$00100000; // back level MCI driver.
|
||||
MCIDRV_MIX_STANDALONE =$00200000;
|
||||
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by MCIDRV_START */
|
||||
///*******************************************************************/
|
||||
|
||||
MCIDRV_CUE_PLAYBACK = $00010000;
|
||||
MCIDRV_CUE_RECORD = $00020000;
|
||||
MCIDRV_START_PLAYBACK = $00040000;
|
||||
MCIDRV_START_RECORD = $00080000;
|
||||
MCIDRV_START_PREROLL = $00100000;
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by MCIDRV_ASSOCIATE */
|
||||
///*******************************************************************/
|
||||
|
||||
MCIDRV_OUTPUT = $00010000;
|
||||
MCIDRV_INPUT = $00020000;
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by MCIDRV_STOP */
|
||||
///*******************************************************************/
|
||||
|
||||
MCIDRV_PAUSE_STREAM_NETWORK = $00010000;
|
||||
MCIDRV_FLUSH_STREAM_NETWORK = $00020000;
|
||||
MCIDRV_DISCARD_STREAM_NETWORK = $00040000;
|
||||
|
||||
///*******************************************************************/
|
||||
// The following messages are used by MCIDRV_DEINIT_CONNECTION */
|
||||
///*******************************************************************/
|
||||
|
||||
MCIDRV_MODIFY_HANDLER =$00010000;
|
||||
|
||||
|
||||
|
||||
///*******************************************************************/
|
||||
// The following range of message ID's are reserved for internal use */
|
||||
// by MCI drivers */
|
||||
///*******************************************************************/
|
||||
MCI_INTERNAL_MESSAGES_START = 1000;
|
||||
MCI_INTERNAL_MESSAGES_END = 1999;
|
||||
|
||||
///*******************************************************************/
|
||||
// Flags used by the string parser for command tables */
|
||||
// NOTE: All flags must have an "L" suffix in order to be parsed as */
|
||||
// DWORDs by the resource compiler */
|
||||
///*******************************************************************/
|
||||
MCI_COMMAND_HEAD = $00000001;
|
||||
MCI_END_COMMAND = $00000002;
|
||||
MCI_END_COMMAND_LIST = $00000003;
|
||||
MCI_RETURN = $00000004;
|
||||
MCI_STRING = $00000005;
|
||||
MCI_FLAG = $00000006;
|
||||
MCI_INTEGER = $00000007;
|
||||
MCI_CONSTANT = $00000008;
|
||||
MCI_CONSTANT_INTEGER = $00000009;
|
||||
MCI_CONSTANT_STRING = $0000000A;
|
||||
MCI_END_CONSTANT = $0000000B;
|
||||
MCI_DEFAULT_STRING = $0000000C;
|
||||
MCI_DEFAULT_INTEGER = $0000000D;
|
||||
MCI_RETURN_TYPE = $0000000E;
|
||||
MCI_RETURN_TYPE_STRING = $0000000F;
|
||||
MCI_END_RETURN_TYPE = $00000010;
|
||||
MCI_CONSTANT_2 = $00000011;
|
||||
MCI_END_CONSTANT_2 = $00000012;
|
||||
MCI_CONSTANT_PAIR = $00000013;
|
||||
MCI_END_CONSTANT_PAIR = $00000014;
|
||||
MCI_CONSTANT_INTEGER_PAIR = $00000015;
|
||||
MCI_CONSTANT_STRING_PAIR = $00000016;
|
||||
MCI_RECTL = $00000017;
|
||||
MCI_CONSTANT_4 = $00000018;
|
||||
MCI_END_CONSTANT_4 = $00000019;
|
||||
MCI_FOURCC = $0000001A;
|
||||
MCI_OR = $0000001B;
|
||||
MCI_END_OR = $0000001C;
|
||||
MCI_STRING_LIST = $0000001D;
|
||||
|
||||
///*******************************************************************/
|
||||
// Return types supported by mciSendString */
|
||||
// Values 0x0000 -> 0xFF00 are reserved by MMPM2 */
|
||||
// Values 0xFF01 -> 0xFFFF are user definable */
|
||||
///*******************************************************************/
|
||||
MCI_INTEGER_RETURNED = $1000;
|
||||
MCI_COLONIZED2_RETURN = $2000;
|
||||
MCI_COLONIZED3_RETURN = $3000;
|
||||
MCI_COLONIZED4_RETURN = $4000;
|
||||
MCI_TRUE_FALSE_RETURN = $5000;
|
||||
MCI_ON_OFF_RETURN = $6000;
|
||||
MCI_DEVICENAME_RETURN = $7000;
|
||||
MCI_TIME_FORMAT_RETURN = $8000;
|
||||
MCI_SPEED_FORMAT_RETURN = $9000;
|
||||
MCI_MODE_RETURN = $A000;
|
||||
MCI_MEDIA_TYPE_RETURN = $B000;
|
||||
MCI_TRACK_TYPE_RETURN = $C000;
|
||||
MCI_CONNECTOR_TYPE_RETURN = $D000;
|
||||
MCI_CDXA_CHANNEL_DESTINATION_RETURN = $E000;
|
||||
MCI_PREROLL_TYPE_RETURN = $F000;
|
||||
MCI_FORMAT_TAG_RETURN = $F100;
|
||||
MCI_SEQ_SYNCHRONIZATION_RETURN = $F200;
|
||||
MCI_VIDEO_QUALITY_RETURN = $F300;
|
||||
MCI_AUDIO_QUALITY_RETURN = $F400;
|
||||
MCI_IMAGE_QUALITY_RETURN = $F500;
|
||||
MCI_VIDEO_COMPRESSION_RETURN = $F600;
|
||||
MCI_AUDIO_COMPRESSION_RETURN = $F700;
|
||||
MCI_IMAGE_COMPRESSION_RETURN = $F800;
|
||||
MCI_RECTL_RETURN = $F900;
|
||||
MCI_FOURCC_RETURN = $FA00;
|
||||
MCI_IMAGE_PELFORMAT_RETURN = $FB00;
|
||||
MCI_DIRECTION_RETURN = $FC00;
|
||||
MCI_SIGNED_INTEGER_RETURN = $FD00;
|
||||
|
||||
MCI_USER_RETURN = $FF01;
|
||||
///*******************************************************************/
|
||||
// End of msg text used by mciGetErrorString */
|
||||
///*******************************************************************/
|
||||
MCIERR_BASE = 5000;
|
||||
MCIERR_MSG_TABLE_END = MCIERR_BASE + 7000;
|
||||
|
||||
///*******************************************************************/
|
||||
// */
|
||||
// MCI DEVICE shareability categories */
|
||||
// */
|
||||
///*******************************************************************/
|
||||
FIXEDSINGLECONTEXT = $0001;
|
||||
DYNAMICSINGLECONTEXT = $0002;
|
||||
LIMITEDMULTIPLECONTEXT = $0003;
|
||||
UNLIMITEDMULTIPLECONTEXT = $0004;
|
||||
|
||||
///*******************************************************************/
|
||||
// MCI driver flag for close during exit list processing */
|
||||
///*******************************************************************/
|
||||
MCI_CLOSE_EXIT = $10000000;
|
||||
|
||||
///*******************************************************************/
|
||||
// MCI driver specific error table resource number base */
|
||||
///*******************************************************************/
|
||||
MMERROR_TABLE_BASE = 500;
|
||||
|
||||
///*******************************************************************/
|
||||
// */
|
||||
// MCIDRV_CHANGERESOURCE message flags */
|
||||
// */
|
||||
///*******************************************************************/
|
||||
|
||||
Type
|
||||
mciDrv_ChangeResource_Parms = record
|
||||
pInstance : Pointer; // pointer to device instance
|
||||
usResourceUnits : Integer; // required resource units
|
||||
usResourceClass : Integer; // resource class
|
||||
usResourcePriority : Integer; // resource priority
|
||||
end;
|
||||
pmciDrv_ChangeResource_Parms = ^mciDrv_ChangeResource_Parms;
|
||||
|
||||
///*******************************************************************/
|
||||
// */
|
||||
// MCIDRV_ENABLE_EVENT message flags */
|
||||
// */
|
||||
///*******************************************************************/
|
||||
|
||||
Type
|
||||
HSTREAM=LongInt;
|
||||
hID=LongInt;
|
||||
hEvent = LongInt; // Event Handle
|
||||
phEvent = ^hEvent; // Pointer to Event Handle
|
||||
HWND = LongInt;
|
||||
MMTIME = LongInt;
|
||||
Type
|
||||
evcb = record
|
||||
ulType : LongInt; // Event type (input)
|
||||
ulSubType : LongInt; // Event SubType (input)
|
||||
ulFlags : LongInt; // 0 (Input), status (Output)
|
||||
hstream : HSTREAM; // handle to stream for this event
|
||||
hid : hID; // handler Id (input/output)
|
||||
ulStatus : LongInt; // Event status (output)
|
||||
ulEventParm1 : LongInt; // Event parameters (input), hID if implicit event
|
||||
ulEventParm2 : LongInt; // Event parameters (input)
|
||||
ulEventParm3 : LongInt; // Event parameters (input)
|
||||
end;
|
||||
pevcb = ^evcb;
|
||||
|
||||
Type
|
||||
MCIDRV_EVENT_PARMS = record
|
||||
ulLength:LongInt; // Length of event parms */
|
||||
pevcb:PEVCB; // pointer to event control block */
|
||||
phevent:PHEVENT; // pointer to the event to enable in network */
|
||||
end;
|
||||
PMCIDRV_EVENT_PARMS=^MCIDRV_EVENT_PARMS;
|
||||
|
||||
///*******************************************************************/
|
||||
// */
|
||||
// MCIDRV_SYNC message flags */
|
||||
// */
|
||||
///*******************************************************************/
|
||||
Const
|
||||
MCIDRV_SYNC_ENABLE = $00000100;
|
||||
MCIDRV_SYNC_DISABLE = $00000200;
|
||||
MCIDRV_SYNC_REC_PULSE = $00000400;
|
||||
MCIDRV_SYNC_MASTER = $00000800;
|
||||
MCIDRV_SYNC_SET_MASTER = $00001000;
|
||||
|
||||
Type
|
||||
sync_evcb = record
|
||||
ulType : LongInt; // Event_SYNC
|
||||
ulSubType : LongInt; // Not used
|
||||
ulSyncFlags : LongInt; // 0 (input),status (output)
|
||||
hstream : HStream; // handle to stream for this event
|
||||
hid : hID; // Handler id
|
||||
ulStatus : LongInt; // Event status (output)
|
||||
mmtimeStart : mmTime; // Filled in by Sync/Stream manager
|
||||
// at SpiEnableSync time. (input)
|
||||
mmtimeMaster : mmTime; // Filled in by Master SH (input)
|
||||
mmtimeSlave : mmTime; // Filled in by slave SH. (output)
|
||||
end;
|
||||
pSync_evcb = ^sync_Evcb;
|
||||
|
||||
Type
|
||||
mciDrv_Sync_Parms = record
|
||||
hStreams : ^hStream; // Pointer to list of stream IDs
|
||||
ulNumStreams : LongInt; // number of stream IDs
|
||||
mmTime : mmTime; // Sync Pulse Time
|
||||
NonStreamMaster : Boolean; // TRUE if this device can be master
|
||||
pevcbSyncPulse : pSync_evcb; // pointer to EVCB address (output)
|
||||
hidMaster : hID; // Master NULL sh ID (valid only on
|
||||
// MCIDRV_SYNC_MASTER
|
||||
ulReserved1 : LongInt; // Reserved field
|
||||
ulReserved2 : LongInt; // Reserved field
|
||||
end;
|
||||
pmciDrv_Sync_Parms = ^mciDrv_Sync_Parms;
|
||||
|
||||
|
||||
//*******************************************************************/
|
||||
// contains information for open message for MCI drivers */
|
||||
//*******************************************************************/
|
||||
Type
|
||||
mmDrv_Open_Parms = record
|
||||
hwndCallback : hwnd; // call back handle
|
||||
usDeviceID : Integer; // The device ID assigned to this instance
|
||||
usDeviceType : Integer; // The device type number
|
||||
usDeviceOrd : Integer; // The device ordinal number
|
||||
pInstance : Pointer; // pointer to the instance structure allocated
|
||||
// initialized by the driver. The MCI driver
|
||||
// will fill in this parameter.
|
||||
szDevDLLName : Array[0..259] of Char; // Character string containing the device
|
||||
// specific DLL name to call for the open.
|
||||
// (ie. ACPA.DLL)
|
||||
pszElementName : pChar; // typically a file name or NULL
|
||||
usDevParmLen : Integer; // Device parameters data block length.
|
||||
pDevParm : Pointer; // Device parameters data block. This data
|
||||
// block is unique to each type of device.
|
||||
// (ie. LVD "COM1 9600 N 7 1").
|
||||
Reserved0 : Pointer;
|
||||
usResourceUnitsRequired : Integer; // number of resource units this instance
|
||||
// requires.
|
||||
usResourceClass : Integer; // resource class this instance belongs to
|
||||
usResourcePriority : Integer; // resource priority for this instance
|
||||
ulParam2 : LongInt; // Pointer to MCI_OPEN structure
|
||||
end;
|
||||
pmmDrv_Open_Parms = ^mmDrv_Open_Parms;
|
||||
|
||||
|
||||
///*******************************************************************/
|
||||
// */
|
||||
// MCIDRV_RESTORE message flags */
|
||||
// */
|
||||
///*******************************************************************/
|
||||
|
||||
Type
|
||||
MCIDRV_RESTORE_PARMS = record
|
||||
ulLength:longint; // Length of restore parms */
|
||||
ulMasterVolume:longint; // Master volume value */
|
||||
end;
|
||||
PMCIDRV_RESTORE_PARMS=^MCIDRV_RESTORE_PARMS;
|
||||
|
||||
function mdmDriverNotify( usDeviceID: Integer; wnd: Hwnd; usMsgType: Integer;
|
||||
usUserParm: Integer; ulMsgParm: LongInt): LongInt; cdecl;
|
||||
|
||||
Implementation
|
||||
|
||||
function mdmDriverNotify( usDeviceID: Integer; wnd: Hwnd; usMsgType: Integer;
|
||||
usUserParm: Integer; ulMsgParm: LongInt): LongInt; cdecl; external 'MDM' index 17;
|
||||
|
||||
End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-02-15 16:59:09 hajny
|
||||
* mmtk directory corrected to lowercase
|
||||
|
||||
Revision 1.1 2003/02/09 13:49:06 hajny
|
||||
+ mmtk added
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,91 +0,0 @@
|
||||
OS/2 Multimedia Toolkit
|
||||
=======================
|
||||
|
||||
OS/2 Multimedia toolkit is set of units to manage various parts of multimedia
|
||||
subsystem of OS/2. Not a part of standard OS/2 Multimedia:
|
||||
|
||||
a) WarpOverlay! library interface (hwvideo.pas)
|
||||
|
||||
MMPM/2 Documentation
|
||||
--------------------
|
||||
|
||||
OS/2 Multimedia Subsystem Programming Guide
|
||||
Provides guidelines for developing multimedia subsystems. Each subsystem
|
||||
component is described in detail in individual chapters. Models are used
|
||||
to complement the information provided by component sample program templates.
|
||||
|
||||
OS/2 Multimedia Application Programming Guide
|
||||
Provides advisory information on application interfaces to help you select
|
||||
and implement functions for your OS/2 multimedia applications. Code examples
|
||||
from fully documented sample programs accompany the descriptions of the
|
||||
functions.
|
||||
|
||||
OS/2 Multimedia Programming Reference
|
||||
Provides detailed information on multimedia functions, messages, and data
|
||||
structures to enable you to write code for your multimedia application
|
||||
programs and subsystems.
|
||||
|
||||
The MMPM/2 Device Driver Reference for OS/2
|
||||
It is for subsystem developers who want to write their own physical
|
||||
device drivers (and associated virtual device drivers) to support audio
|
||||
and video adapters in the Multimedia Presentation Manager/2 system.
|
||||
|
||||
Multimedia REXX
|
||||
Describes REXX functions that enable media control interface string commands
|
||||
to be sent from an OS/2 command file to control multimedia devices. This
|
||||
online book is provided with OS/2 multimedia.
|
||||
|
||||
Guide to Multimedia User Interface Design - (41G2922)
|
||||
Describes design concepts to be considered when designing a CUA multimedia
|
||||
interface that is consistent within a particular multimedia product and
|
||||
across other products.
|
||||
|
||||
WarpOverlay!
|
||||
------------
|
||||
|
||||
WarpOverlay! is video acceleration driver. This is original readme.txt
|
||||
(BEWARE! Most probably, Valery don't know about this port):
|
||||
|
||||
-Begin-
|
||||
Short overview:
|
||||
hwvideo.h is a main header for use WarpOverlay! video acceleration driver.
|
||||
There are no more or less suitable SDK yet, I am to lazy :(
|
||||
|
||||
|
||||
DEMO - small stupid example of using WarpOverlay!, currently it does not sup-
|
||||
port many features of WarpOverlay!, only basic functionality.
|
||||
it just tried to load file demo.mpg and cyclically play it.
|
||||
Used mpeg1 decoder pretty unstable and very unoptimal. This is just example.
|
||||
Many of MPEG files can crush decoder. I am not very fimilar with different
|
||||
MPEG aspects and do not want to mess with it, sorry.
|
||||
I just included one small MPEG1 file, which work well.
|
||||
|
||||
RGB - example of using RGB (FOURCC_R565) overlay. Attention! RGB overlay
|
||||
not supported for NVidia chips and for Matrox G200.
|
||||
Known worked RGB overlay: Rage128, Radeon, i740, Savages.
|
||||
|
||||
|
||||
Please contact me, if you have questions/troubles with this example or with
|
||||
WarpOverlay! usage.
|
||||
|
||||
Valery Gaynullin
|
||||
|
||||
MPEG decoding engine based on the Berkeley MPEG (mpegplay).
|
||||
-End-
|
||||
|
||||
Longterm plans
|
||||
--------------
|
||||
|
||||
a) Fix lot of bugs ;)
|
||||
b) Add support for IBM Multimedia Classes and CWMM Classes for WPS (as fast as
|
||||
SOM and WPS toolkits will be presented)
|
||||
c) SEAL library interface (seal.pas) www.netlabs.org/hobbes.nmsu.edu
|
||||
SEAL is module player library. At the present time SEAL not developing
|
||||
anymore (for all platforms), but still very usefull for mudule music fans.
|
||||
d) DualMode Library (dual.pas) www.netlabs.org
|
||||
DualMode library allows to use common access method as for fullscreen (MGL)
|
||||
as for windowed (DIVE) video modes.
|
||||
e) Examples, examples, examples (tests as well)
|
||||
|
||||
CU!
|
||||
Yuri & Andry
|
@ -1,542 +0,0 @@
|
||||
{
|
||||
$Id$
|
||||
Copyright (c) 1990-1991 International Business Machines Corporation
|
||||
Copyright (c) 2003 by Yuri Prokushev (prokushev@freemail.ru)
|
||||
|
||||
This is the multimedia unit file that has the typedefs, defines and
|
||||
function prototypes for Multimedia Applets.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License (LGPL) as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version. This program is
|
||||
distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU Library General Public License for more details. You should
|
||||
have received a copy of the GNU Library General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
{
|
||||
@abstract(OS/2 Multimedia Applets)
|
||||
@author(Yuri Prokushev (prokushev@freemail.ru))
|
||||
@created(19 Jan 2003)
|
||||
@lastmod(23 Jan 2003)
|
||||
This is the multimedia unit file that has the typedefs, defines and
|
||||
function prototypes for Multimedia Applets.
|
||||
Warning: This code is alfa. Future versions of this unit will propably
|
||||
not be compatible.
|
||||
}
|
||||
Unit SW;
|
||||
|
||||
Interface
|
||||
|
||||
Uses
|
||||
Os2Def,
|
||||
PmWin;
|
||||
|
||||
Const
|
||||
MAX_SMBDTEXT=35;
|
||||
|
||||
MB_ICONCUSTOM=$0001;
|
||||
|
||||
SC_DEFAULTSIZE=$c000; // WM_COMMAND from SysMenu
|
||||
|
||||
WM_INITSECONDARYWINDOW=$0519; // MP1: NULL, MP2: CreateParams
|
||||
|
||||
QS_FRAME=$1; // Flag set to query frame
|
||||
QS_DIALOG=$2; // Flag set to query dialog
|
||||
|
||||
// #pragma pack(4)
|
||||
|
||||
Type
|
||||
TSMBD=record
|
||||
achText: Array[0..MAX_SMBDTEXT + 1] of Char; // Text of the button. eg. "~Cancel"
|
||||
idButton: Cardinal; // Button ID returned when user chooses
|
||||
flStyle: Longint; // Button style or'ed with internal
|
||||
end;
|
||||
PSMBD=^TSMBD;
|
||||
|
||||
TSMBINFO=record
|
||||
hIcon: Cardinal; // Icon handle
|
||||
cButtons: Cardinal; // Number of buttons
|
||||
flStyle: Cardinal; // Icon style flags (MB_ICONQUESTION, etc...)
|
||||
hwndNotify: HWND; // Reserved
|
||||
smbd: PSMBD; // Array of button definitions
|
||||
end;
|
||||
PSMBINFO=^TSMBINFO;
|
||||
|
||||
// #pragma pack()
|
||||
|
||||
// Analogous to WinDlgBox
|
||||
function WinSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Pointer): Cardinal; cdecl;
|
||||
|
||||
// Analogous to WinLoadDlg
|
||||
function WinLoadSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Cardinal): hwnd; cdecl;
|
||||
|
||||
// Analogous to WinProcessDlg
|
||||
function WinProcessSecondaryWindow(hwndSW: hwnd): Cardinal; cdecl;
|
||||
|
||||
// Analogous to WinCreateDlg
|
||||
function WinCreateSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; idDlg: Cardinal; pCreateParams: Pointer): hwnd; cdecl;
|
||||
|
||||
function WinDefaultSize(Wnd: hwnd): Longbool; cdecl;
|
||||
|
||||
function WinInsertDefaultSize(Wnd: hwnd; pszDefaultSize: pChar): Longbool; cdecl;
|
||||
|
||||
function WinQuerySecondaryhwnd(Wnd: hwnd; ulFlag: Cardinal): hwnd; cdecl;
|
||||
|
||||
//************************************************************************/
|
||||
//* WinSecondaryMessageBox */
|
||||
//* */
|
||||
//* Parameters: HWND hwndParent - handle of the parent window. */
|
||||
//* HWND hwndOwner - handle of the owner window. */
|
||||
//* PSZ pszText - message text. */
|
||||
//* PSZ pszCaption - title of the message box. */
|
||||
//* ULONG idWindow - Message box id */
|
||||
//* PSMBINFO psmbinfo - pointer to button/icon info */
|
||||
//************************************************************************/
|
||||
function WinSecondaryMessageBox(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pszText: pChar; pszCaption: pChar; idWindow: Cardinal; smb: psmbinfo): Cardinal; cdecl;
|
||||
|
||||
//************************************************************************/
|
||||
//* WinDismissSecondaryWindow */
|
||||
//* */
|
||||
//* This function should be called from within the dlg proc. The hwnd */
|
||||
//* passed in MUST be the handle to the actual dialog. */
|
||||
//************************************************************************/
|
||||
|
||||
function WinDismissSecondaryWindow(hwndDlg: hwnd; ulResult: Cardinal): Longbool; cdecl;
|
||||
|
||||
//************************************************************************/
|
||||
//* The parameter hwnd can be either the secondary window or the actual */
|
||||
//* dialog. */
|
||||
//************************************************************************/
|
||||
|
||||
function WinDestroySecondaryWindow(Wnd: hwnd): Longbool; cdecl;
|
||||
|
||||
function WinDefSecondaryWindowProc(Wnd: hwnd; msg: Cardinal;
|
||||
mp1: mParam; mp2: mParam): mResult; cdecl;
|
||||
|
||||
//************************************************************************/
|
||||
//* Graphic Buttons */
|
||||
//************************************************************************/
|
||||
|
||||
//************************************************************************/
|
||||
//* Notes on Using GraphicButtons */
|
||||
//* */
|
||||
//* GraphicButton CONTROL DATA */
|
||||
//* */
|
||||
//* The format of the control data for GraphicButtons is */
|
||||
//* "button Text, number of bitmaps, bitmap resource id's ..." */
|
||||
//* */
|
||||
//* */
|
||||
//* Following are two example window templates of GraphicButtons: */
|
||||
//* */
|
||||
//* 1) CONTROL "", IDD_MP_REV, 120, 10, TS_PB_WIDTH, TS_PB_HEIGHT,*/
|
||||
//* WC_GRAPHICBUTTON, */
|
||||
//* GBS_TWOSTATE | GBS_HILITEBITMAP | */
|
||||
//* WS_VISIBLE | WS_TABSTOP */
|
||||
//* CTLDATA GB_RESOURCE,"~REV", 2, ID_MP_REV1, ID_MP_REV0*/
|
||||
//* */
|
||||
//* The above graphicbutton has id IDD_MP_REV and is of type */
|
||||
//* GBS_TWOSTATE and GBS_HILITEBITMAP. The GBS_HILITEBITMAP allows */
|
||||
//* a different bitmap to be displayed when the button is in the */
|
||||
//* hilite state. The graphicbutton will be displayed with text */
|
||||
//* "REV" and has "R" as the mnemonic. It has 2 bitmaps associated */
|
||||
//* with it. Their resource id are ID_MP_REV1 and ID_MP_REV0. */
|
||||
//* */
|
||||
//* */
|
||||
//* 2) CONTROL "", IDD_MP_PLAY, 175, 10, TS_PB_WIDTH, */
|
||||
//* TS_PB_HEIGHT, WC_GRAPHICBUTTON, */
|
||||
//* GBS_AUTOTWOSTATE | GBS_AUTOANIMATION | */
|
||||
//* WS_VISIBLE | WS_TABSTOP */
|
||||
//* CTLDATA GB_RESOURCE, "~PLAY", 9, */
|
||||
//* ID_MP_STOP0, ID_MP_PLAY1, ID_MP_PLAY2,*/
|
||||
//* ID_MP_PLAY3, ID_MP_PLAY4, ID_MP_PLAY5,*/
|
||||
//* ID_MP_PLAY6, ID_MP_PLAY7, ID_MP_REV1 */
|
||||
//* */
|
||||
//* The above graphicbutton has id IDD_MP_PLAY and is of type */
|
||||
//* GBS_AUTOTWOSTATE and GBS_AUTOANIMATE. When clicked upon, */
|
||||
//* the button will automatically toggle the state and animation. */
|
||||
//* The graphicbutton will be displayed with text "PLAY" */
|
||||
//* and mnemonic "P". It has 9 bitmaps associated with it. */
|
||||
//* */
|
||||
//* */
|
||||
//* */
|
||||
//* GraphicButton Painting */
|
||||
//* */
|
||||
//* Due to the PM design, whenever a graphicbutton is clicked, */
|
||||
//* it is sent a BN_PAINT (to paint a non-hilite state) and then */
|
||||
//* BN_CLICKED. Thus, for GBS_AUTO* style graphicbuttons, a paint */
|
||||
//* request is generated before the button has a chance to change */
|
||||
//* its state (BN_CLICKED). To avoid this premature painting, */
|
||||
//* code was inserted to delay the painting of graphicbuttons */
|
||||
//* GB_PAINT_RESOLUTION milliseconds whenever the button is switching */
|
||||
//* FROM the hilite paint state. */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
Function WinRegisterGraphicButton: Longbool; cdecl;
|
||||
|
||||
Const
|
||||
WC_GRAPHICBUTTON=PChar($ffff0040);
|
||||
|
||||
//************************************************************************/
|
||||
//* GraphicButton Animation/TwoState constants */
|
||||
//************************************************************************/
|
||||
|
||||
//************************************************************************/
|
||||
//* Graphic Button Style bits */
|
||||
//************************************************************************/
|
||||
|
||||
GBS_TWOSTATE = $1000; // indicates TwoState button
|
||||
GBS_AUTOTWOSTATE = $2000; // will auto toggle state up/down
|
||||
GBS_ANIMATION = $4000; // indicates Animatable button
|
||||
GBS_AUTOANIMATION = $8000; // will auto toggle anim. on/off
|
||||
GBS_DISABLEBITMAP = $0010; // allows a diff. bitmap when disabled
|
||||
GBS_HILITEBITMAP = $0020; // allows a diff. bitmap when hilited
|
||||
GBS_3D_TEXTRECESSED = $0040; // display text in 3-D recessed
|
||||
GBS_3D_TEXTRAISED = $0080; // display text in 3-D raised
|
||||
GBS_MINIBUTTON = $0001; // mini button style
|
||||
|
||||
//************************************************************************/
|
||||
//* Graphic Button User Constants */
|
||||
//************************************************************************/
|
||||
|
||||
//************************************************************************/
|
||||
//* Codes to reference allowed GraphicButton states (or paint states) */
|
||||
//************************************************************************/
|
||||
|
||||
GB_ERROR = -1; // GraphicButton Error
|
||||
GB_UP = 1; // GraphicButton up (and paint) state
|
||||
GB_DOWN = 2; // GraphicButton down (and paint) state
|
||||
GB_DISABLE = 3; // GraphicButton disabled state
|
||||
GB_HILITE = 4; // GraphicButton paint state only
|
||||
GB_OUTOFHILITE = 5; // Changing out of hilite paint state
|
||||
|
||||
//************************************************************************/
|
||||
//* Codes for various GraphicButton message function parameters */
|
||||
//************************************************************************/
|
||||
|
||||
GB_TOGGLE = 10; // GraphicButton toggle
|
||||
GB_CURRENTSTATE = 11; // GraphicButton's current state
|
||||
GB_ANIMATIONBEGIN = 12; // when refering to index of anim start
|
||||
GB_ANIMATIONEND = 13; // when refering to index of anim end
|
||||
GB_MAXINDEX = 14; // GraphicButton max. index
|
||||
|
||||
//************************************************************************/
|
||||
//* Codes to set/query text position relative to the bitmap */
|
||||
//************************************************************************/
|
||||
|
||||
GB_TEXTBELOW = 1; // place text below bitmap
|
||||
GB_TEXTABOVE = 2; // place text above bitmap
|
||||
|
||||
//************************************************************************/
|
||||
//* Codes used to set the animation frame with message GBM_SETBITMAPINDEX*/
|
||||
//************************************************************************/
|
||||
|
||||
GB_INDEX_FORWARD = -1; // advance one frame foward
|
||||
GB_INDEX_BACKWARD = -2; // advance one frame backwards
|
||||
GB_INDEX_FIRST = -3; // set to first frame of sequence
|
||||
GB_INDEX_LAST = -4; // set to last frame of sequence
|
||||
|
||||
// #pragma pack(1)
|
||||
|
||||
type
|
||||
TgbtnCdata = packed record
|
||||
usReserved: Word;
|
||||
pszText: PChar;
|
||||
hmod: Cardinal;
|
||||
cBitmaps: Word;
|
||||
aidBitmap: Array[0..1] of Word;
|
||||
end;
|
||||
pgbtnCdata = ^TgbtnCdata;
|
||||
|
||||
//#pragma pack()
|
||||
|
||||
const
|
||||
GB_RESOURCE = 1;
|
||||
GB_STRUCTURE = 0;
|
||||
|
||||
|
||||
//************************************************************************/
|
||||
//* Notification Messages received by GraphicButton Parent */
|
||||
//***********************************************************************/
|
||||
//************************************************************************/
|
||||
//* GBN_BUTTONDOWN, GBN_BUTTONUP, and GBN_BUTTONHILITE */
|
||||
//* */
|
||||
//* The notification messages are passed as part of the WM_CONTROL */
|
||||
//* message. */
|
||||
//* */
|
||||
//* msg = WM_CONTROL */
|
||||
//* mp1 = MPFROM2SHORT(gpb_id, button_state) */
|
||||
//* gpd_id = identity of the displayed graphic pushbutton */
|
||||
//* button_state = GBN_BUTTONUP, GBN_BUTTONDOWN, or */
|
||||
//* GBN_BUTTONHILITE */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBN_BUTTONUP = $0524;
|
||||
GBN_BUTTONDOWN = $0525;
|
||||
GBN_BUTTONHILITE = $0526;
|
||||
GBN_SETFOCUS = $0527; // mp2 TRUE for gaining focus
|
||||
|
||||
//************************************************************************/
|
||||
//* Messages to GraphicButton Windows */
|
||||
//************************************************************************/
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_SETGRAPHICDATA */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMP((PGBTNCDATA)&gbtncdata); Graphic button control data*/
|
||||
//* mp2 = NULL; not used */
|
||||
//* */
|
||||
//* WARNING: This message resets all button parameters. */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_SETGRAPHICDATA = $052A;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_ANIMATE */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(fStart) TRUE to start animation, FALSE to stop*/
|
||||
//* mp2 = MPFROMSHORT(fContinue) TRUE continue anim. at currently */
|
||||
//* displayed bitmap, FALSE restart at */
|
||||
//* the beginning. */
|
||||
//* */
|
||||
//* Returns TRUE on Success */
|
||||
//* FALSE on Failure */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_ANIMATE = $052B;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_SETANIMATIONRATE */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(ULmIL); Animation rate in milliseconds */
|
||||
//* mp2 = NULL not used */
|
||||
//* */
|
||||
//* */
|
||||
//* Returns TRUE on Success */
|
||||
//* FALSE on Failure */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_SETANIMATIONRATE = $052C;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_QUERYANIMATIONACTIVE */
|
||||
//************************************************************************/
|
||||
//* mp1 = NULL; not used */
|
||||
//* mp2 = NULL; not used */
|
||||
//* */
|
||||
//* */
|
||||
//* Returns TRUE if animation is active, else GB_ERROR */
|
||||
//* */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_QUERYANIMATIONACTIVE = $052D;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_QUERYANIMATIONRATE */
|
||||
//************************************************************************/
|
||||
//* mp1 = NULL; not used */
|
||||
//* mp2 = NULL; not used */
|
||||
//* */
|
||||
//* */
|
||||
//* Returns ULONG sepcifying animation rate in milliseconds */
|
||||
//* */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_QUERYANIMATIONRATE = $052E;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_SETBITMAPINDEX */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(usGB_State) Bitmap index to change */
|
||||
//* GB_UP, */
|
||||
//* GB_DOWN, */
|
||||
//* GB_DISABLE, */
|
||||
//* GB_HILITE, */
|
||||
//* GB_ANIMATIONBEGIN, */
|
||||
//* GB_ANIMATIONEND, */
|
||||
//* or GB_CURRENTSTATE chng current state (up or down) bitmap*/
|
||||
//* mp2 = MPFROMSHORT(sFrameCode) Set according to code or frame desire */
|
||||
//* GB_INDEX_FORWARD, chng to next bitmap in circular array */
|
||||
//* GB_INDEX_BACKWARD, " " prev " " " " */
|
||||
//* GB_INDEX_FIRST, " " first " " " " */
|
||||
//* GB_INDEX_LAST, " " last " " " " */
|
||||
//* or desired_bitmap otherwise desired bmp index specified */
|
||||
//* */
|
||||
//* Returns TRUE on Success, otherwise FALSE */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_SETBITMAPINDEX = $052F;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_QUERYBITMAPINDEX */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(usGB_State) Query bitmap index */
|
||||
//* GB_UP, */
|
||||
//* GB_DOWN, */
|
||||
//* GB_DISABLE, */
|
||||
//* GB_HILITE, */
|
||||
//* GB_ANIMATIONBEGIN, */
|
||||
//* GB_ANIMATIONEND, */
|
||||
//* or GB_CURRENTSTATE query current state (up or down) bitmap */
|
||||
//* mp2 = NULL; not used */
|
||||
//* */
|
||||
//* Returns USHORT specifying the index */
|
||||
//* */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_QUERYBITMAPINDEX = $0530;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_SETSTATE */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(usStateCode) Set twostate button to specified */
|
||||
//* state */
|
||||
//* GB_UP, */
|
||||
//* GB_DOWN, */
|
||||
//* or GB_TOGGLE toggle (up/down) to (down/up) */
|
||||
//* mp2 = MPFROMBOOL(fRepaint) TRUE - state changed and displayed */
|
||||
//* FALSE - state changed, not displayed */
|
||||
//* */
|
||||
//* Returns TRUE on Success */
|
||||
//* FALSE on Failure */
|
||||
//* */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_SETSTATE = $0531;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_QUERYSTATE */
|
||||
//************************************************************************/
|
||||
//* */
|
||||
//* mp1 = NULL not used */
|
||||
//* mp2 = NULL not used */
|
||||
//* */
|
||||
//* Returns the state (GB_UP or GB_DOWN) else GB_ERROR. */
|
||||
//* */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_QUERYSTATE = $0532;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_SETTEXTPOSITION */
|
||||
//************************************************************************/
|
||||
//* mp1 = MPFROMSHORT(usTextPos) How to position text relative to */
|
||||
//* bitmap */
|
||||
//* GB_TEXTBELOW, */
|
||||
//* or GB_TEXTABOVE */
|
||||
//* mp2 = NULL not used */
|
||||
//* */
|
||||
//* Returns TRUE on Success, otherwise FALSE */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_SETTEXTPOSITION = $0533;
|
||||
|
||||
//************************************************************************/
|
||||
//* GBM_QUERYTEXTPOSITION */
|
||||
//************************************************************************/
|
||||
//* */
|
||||
//* mp1 = NULL not used */
|
||||
//* mp2 = NULL not used */
|
||||
//* */
|
||||
//* Returns GB_TEXTBELOW, GB_TEXTABOVE, GB_TEXTRIGHT, GB_TEXTLEFT */
|
||||
//* on success, otherwise FALSE */
|
||||
//* */
|
||||
//************************************************************************/
|
||||
|
||||
GBM_QUERYTEXTPOSITION = $0534;
|
||||
|
||||
//************************************************************************/
|
||||
//* GraphicButton END */
|
||||
//************************************************************************/
|
||||
|
||||
MM_TABHELP = $054C;
|
||||
|
||||
Implementation
|
||||
|
||||
function WinSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Pointer): Cardinal; cdecl;
|
||||
external 'SW' index 1;
|
||||
|
||||
function WinLoadSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; hmod: Cardinal; idDlg: Cardinal; pCreateParams: Cardinal): hwnd; cdecl;
|
||||
external 'SW' index 2;
|
||||
|
||||
function WinProcessSecondaryWindow(hwndSW: hwnd): Cardinal; cdecl;
|
||||
external 'SW' index 3;
|
||||
|
||||
function WinCreateSecondaryWindow(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pfnDlgProc: proc; idDlg: Cardinal; pCreateParams: Pointer): hwnd; cdecl;
|
||||
external 'SW' index 4;
|
||||
|
||||
function WinDefaultSize(Wnd: hwnd): Longbool; cdecl;
|
||||
external 'SW' index 11;
|
||||
|
||||
function WinInsertDefaultSize(Wnd: hwnd; pszDefaultSize: pChar): Longbool; cdecl;
|
||||
external 'SW' index 12;
|
||||
|
||||
function WinQuerySecondaryhwnd(Wnd: hwnd; ulFlag: Cardinal): hwnd; cdecl;
|
||||
external 'SW' index 52;
|
||||
|
||||
function WinSecondaryMessageBox(hwndParent: hwnd; hwndOwner: hwnd;
|
||||
pszText: pChar; pszCaption: pChar; idWindow: Cardinal; smb: psmbinfo): Cardinal; cdecl;
|
||||
external 'SW' index 5;
|
||||
|
||||
function WinDismissSecondaryWindow(hwndDlg: hwnd; ulResult: Cardinal): Longbool; cdecl;
|
||||
external 'SW' index 6;
|
||||
|
||||
function WinDestroySecondaryWindow(Wnd: hwnd): Longbool; cdecl;
|
||||
external 'SW' index 7;
|
||||
|
||||
function WinDefSecondaryWindowProc(Wnd: hwnd; msg: Cardinal;
|
||||
mp1: mParam; mp2: mParam): mResult; cdecl;
|
||||
external 'SW' index 8;
|
||||
|
||||
Function WinRegisterGraphicButton: Longbool; cdecl;
|
||||
external 'SW' index 14;
|
||||
|
||||
End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-02-15 16:59:09 hajny
|
||||
* mmtk directory corrected to lowercase
|
||||
|
||||
Revision 1.1 2003/02/09 13:49:06 hajny
|
||||
+ mmtk added
|
||||
|
||||
}
|
||||
|
||||
{ No information about following functions
|
||||
Index Name
|
||||
³ 00009 ³ WinQuerySecondaryFrame
|
||||
³ 00010 ³ WinQuerySecondaryDialog
|
||||
³ 00013 ³ WinRegisterCircularSlider
|
||||
³ 00053 ³ WinQueryDefaultSize
|
||||
³ 00057 ³ WinSWAssocResModule
|
||||
³ 00060 ³ WinReportMessage
|
||||
³ 00061 ³ WinRegisterSelectionSlider
|
||||
³ 00067 ³ WinRegisterCircularSlider2
|
||||
}
|
Loading…
Reference in New Issue
Block a user