123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545 |
- {
- $Id$
- Copyright (c) 1990-1991 International Business Machines Corporation
- Copyright (c) 2003 by Yuri Prokushev ([email protected])
- 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 ([email protected]))
- @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.3 2003-02-15 18:44:55 hajny
- * mmtk directory corrected to lowercase
- 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
- }
|