mciwnd.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 460 行 · 第 1/2 页
H
460 行
// begin_vfw32
/*----------------------------------------------------------------------------*\
*
* MCIWnd
*
* MCIWnd window class header file.
*
* the MCIWnd window class is a window class for controling MCI devices
* MCI devices include, wave files, midi files, AVI Video, cd audio,
* vcr, video disc, and others..
*
* to learn more about MCI and mci command sets see the
* "Microsoft Multimedia Programmers's guide" in the Win31 SDK
*
* the easiest use of the MCIWnd class is like so:
*
* hwnd = MCIWndCreate(hwndParent, hInstance, 0, "chimes.wav");
* ...
* MCIWndPlay(hwnd);
* MCIWndStop(hwnd);
* MCIWndPause(hwnd);
* ....
* MCIWndDestroy(hwnd);
*
* this will create a window with a play/pause, stop and a playbar
* and start the wave file playing.
*
* mciwnd.h defines macros for all the most common MCI commands, but
* any string command can be used if needed.
*
* Note: unlike the mciSendString() API, no alias or file name needs
* to be specifed, since the device to use is implied by the window handle.
*
* MCIWndSendString(hwnd, "setaudio stream to 2");
*
* (C) Copyright Microsoft Corp. 1991-1995. All rights reserved.
*
* WIN32:
*
* MCIWnd supports both ansi and unicode interfaces. For any message that
* takes or returns a text string, two versions of the message are defined,
* appended with A or W for Ansi or Wide Char. The message or api itself
* is defined to be one or other of these depending on whether you have
* UNICODE defined in your application.
* Thus for the api MCIWndCreate, there are in fact two apis,
* MCIWndCreateA and MCIWndCreateW. If you call MCIWndCreate, this will be
* re-routed to MCIWndCreateA unless UNICODE is defined when building your
* application. In any one application, you can mix calls to the
* Ansi and Unicode entrypoints.
*
* If you use SendMessage instead of the macros below such as MCIWndOpen(),
* you will see that the messages have changed for WIN32, to support Ansi
* and Unicode entrypoints. In particular, MCI_OPEN has been replaced by
* MCWNDM_OPENA, or MCIWNDM_OPENW (MCIWNDM_OPEN is defined to be one or
* other of these).
*
* Also, note that the WIN32 implementation of MCIWnd uses UNICODE
* so all apis and messages supporting ANSI strings do so by mapping them
* UNICODE strings and then calling the corresponding UNICODE entrypoint.
*
*----------------------------------------------------------------------------*/
// end_vfw32
#ifndef INC_MCIWND
#define INC_MCIWND
#if !defined(_WIN32) && !defined(LPTSTR)
#define LPTSTR LPSTR
#endif
// begin_vfw32
#ifdef __cplusplus
// MFC Redefines SendMessage, so make sure we get the global one....
#define MCIWndSM ::SendMessage /* SendMessage in C++*/
#else
#define MCIWndSM SendMessage /* SendMessage in C */
#endif /* __cplusplus */
// end_vfw32
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
// begin_vfw32
#define MCIWND_WINDOW_CLASS TEXT("MCIWndClass")
// end_vfw32
#else
#define MCIWND_WINDOW_CLASS "MCIWndClass"
#endif
#ifdef _WIN32
// begin_vfw32
HWND VFWAPIV MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance,
DWORD dwStyle,LPCSTR szFile);
HWND VFWAPIV MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance,
DWORD dwStyle,LPCWSTR szFile);
#ifdef UNICODE
#define MCIWndCreate MCIWndCreateW
#else
#define MCIWndCreate MCIWndCreateA
#endif
BOOL VFWAPIV MCIWndRegisterClass();
// end_vfw32
#else
HWND FAR _cdecl _loadds MCIWndCreate(HWND hwndParent, HINSTANCE hInstance,
DWORD dwStyle,LPCSTR szFile);
BOOL FAR _cdecl _loadds MCIWndRegisterClass();
#endif
// begin_vfw32
// Flags for the MCIWndOpen command
#define MCIWNDOPENF_NEW 0x0001 // open a new file
// window styles
#define MCIWNDF_NOAUTOSIZEWINDOW 0x0001 // when movie size changes
#define MCIWNDF_NOPLAYBAR 0x0002 // no toolbar
#define MCIWNDF_NOAUTOSIZEMOVIE 0x0004 // when window size changes
#define MCIWNDF_NOMENU 0x0008 // no popup menu from RBUTTONDOWN
#define MCIWNDF_SHOWNAME 0x0010 // show name in caption
#define MCIWNDF_SHOWPOS 0x0020 // show position in caption
#define MCIWNDF_SHOWMODE 0x0040 // show mode in caption
#define MCIWNDF_SHOWALL 0x0070 // show all
#define MCIWNDF_NOTIFYMODE 0x0100 // tell parent of mode change
#define MCIWNDF_NOTIFYPOS 0x0200 // tell parent of pos change
#define MCIWNDF_NOTIFYSIZE 0x0400 // tell parent of size change
#define MCIWNDF_NOTIFYERROR 0x1000 // tell parent of an error
#define MCIWNDF_NOTIFYALL 0x1F00 // tell all
#define MCIWNDF_NOTIFYANSI 0x0080
// end_vfw32
#ifdef _WIN32
// begin_vfw32
// The MEDIA notification includes a text string.
// To receive notifications in ANSI instead of unicode set the
// MCIWNDF_NOTIFYANSI style bit. The macro below includes this bit
// by default unless you define UNICODE in your application.
#define MCIWNDF_NOTIFYMEDIAA 0x0880 // tell parent of media change
#define MCIWNDF_NOTIFYMEDIAW 0x0800 // tell parent of media change
#ifdef UNICODE
#define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAW
#else
#define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAA
#endif
// end_vfw32
#else
#define MCIWNDF_NOTIFYMEDIA 0x0800 // tell parent of media change
#endif
// begin_vfw32
#define MCIWNDF_RECORD 0x2000 // Give a record button
#define MCIWNDF_NOERRORDLG 0x4000 // Show Error Dlgs for MCI cmds?
#define MCIWNDF_NOOPEN 0x8000 // Don't allow user to open things
// can macros
#define MCIWndCanPlay(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_PLAY,0,0)
#define MCIWndCanRecord(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_RECORD,0,0)
#define MCIWndCanSave(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_SAVE,0,0)
#define MCIWndCanWindow(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_WINDOW,0,0)
#define MCIWndCanEject(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_EJECT,0,0)
#define MCIWndCanConfig(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_CAN_CONFIG,0,0)
#define MCIWndPaletteKick(hwnd) (BOOL)MCIWndSM(hwnd,MCIWNDM_PALETTEKICK,0,0)
#define MCIWndSave(hwnd, szFile) (LONG)MCIWndSM(hwnd, MCI_SAVE, 0, (LPARAM)(LPVOID)(szFile))
#define MCIWndSaveDialog(hwnd) MCIWndSave(hwnd, -1)
// if you dont give a device it will use the current device....
#define MCIWndNew(hwnd, lp) (LONG)MCIWndSM(hwnd, MCIWNDM_NEW, 0, (LPARAM)(LPVOID)(lp))
#define MCIWndRecord(hwnd) (LONG)MCIWndSM(hwnd, MCI_RECORD, 0, 0)
// end_vfw32
#ifdef _WIN32
// begin_vfw32
#define MCIWndOpen(hwnd, sz, f) (LONG)MCIWndSM(hwnd, MCIWNDM_OPEN, (WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
// end_vfw32
#else
#define MCIWndOpen(hwnd, sz, f) (LONG)MCIWndSM(hwnd, MCI_OPEN, (WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
#endif
// begin_vfw32
#define MCIWndOpenDialog(hwnd) MCIWndOpen(hwnd, -1, 0)
#define MCIWndClose(hwnd) (LONG)MCIWndSM(hwnd, MCI_CLOSE, 0, 0)
#define MCIWndPlay(hwnd) (LONG)MCIWndSM(hwnd, MCI_PLAY, 0, 0)
#define MCIWndStop(hwnd) (LONG)MCIWndSM(hwnd, MCI_STOP, 0, 0)
#define MCIWndPause(hwnd) (LONG)MCIWndSM(hwnd, MCI_PAUSE, 0, 0)
#define MCIWndResume(hwnd) (LONG)MCIWndSM(hwnd, MCI_RESUME, 0, 0)
#define MCIWndSeek(hwnd, lPos) (LONG)MCIWndSM(hwnd, MCI_SEEK, 0, (LPARAM)(LONG)(lPos))
#define MCIWndEject(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_EJECT, 0, 0)
#define MCIWndHome(hwnd) MCIWndSeek(hwnd, MCIWND_START)
#define MCIWndEnd(hwnd) MCIWndSeek(hwnd, MCIWND_END)
#define MCIWndGetSource(hwnd, prc) (LONG)MCIWndSM(hwnd, MCIWNDM_GET_SOURCE, 0, (LPARAM)(LPRECT)(prc))
#define MCIWndPutSource(hwnd, prc) (LONG)MCIWndSM(hwnd, MCIWNDM_PUT_SOURCE, 0, (LPARAM)(LPRECT)(prc))
#define MCIWndGetDest(hwnd, prc) (LONG)MCIWndSM(hwnd, MCIWNDM_GET_DEST, 0, (LPARAM)(LPRECT)(prc))
#define MCIWndPutDest(hwnd, prc) (LONG)MCIWndSM(hwnd, MCIWNDM_PUT_DEST, 0, (LPARAM)(LPRECT)(prc))
#define MCIWndPlayReverse(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_PLAYREVERSE, 0, 0)
#define MCIWndPlayFrom(hwnd, lPos) (LONG)MCIWndSM(hwnd, MCIWNDM_PLAYFROM, 0, (LPARAM)(LONG)(lPos))
#define MCIWndPlayTo(hwnd, lPos) (LONG)MCIWndSM(hwnd, MCIWNDM_PLAYTO, 0, (LPARAM)(LONG)(lPos))
#define MCIWndPlayFromTo(hwnd, lStart, lEnd) (MCIWndSeek(hwnd, lStart), MCIWndPlayTo(hwnd, lEnd))
#define MCIWndGetDeviceID(hwnd) (UINT)MCIWndSM(hwnd, MCIWNDM_GETDEVICEID, 0, 0)
#define MCIWndGetAlias(hwnd) (UINT)MCIWndSM(hwnd, MCIWNDM_GETALIAS, 0, 0)
#define MCIWndGetMode(hwnd, lp, len) (LONG)MCIWndSM(hwnd, MCIWNDM_GETMODE, (WPARAM)(UINT)(len), (LPARAM)(LPTSTR)(lp))
#define MCIWndGetPosition(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETPOSITION, 0, 0)
#define MCIWndGetPositionString(hwnd, lp, len) (LONG)MCIWndSM(hwnd, MCIWNDM_GETPOSITION, (WPARAM)(UINT)(len), (LPARAM)(LPTSTR)(lp))
#define MCIWndGetStart(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETSTART, 0, 0)
#define MCIWndGetLength(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETLENGTH, 0, 0)
#define MCIWndGetEnd(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETEND, 0, 0)
#define MCIWndStep(hwnd, n) (LONG)MCIWndSM(hwnd, MCI_STEP, 0,(LPARAM)(long)(n))
#define MCIWndDestroy(hwnd) (VOID)MCIWndSM(hwnd, WM_CLOSE, 0, 0)
#define MCIWndSetZoom(hwnd,iZoom) (VOID)MCIWndSM(hwnd, MCIWNDM_SETZOOM, 0, (LPARAM)(UINT)(iZoom))
#define MCIWndGetZoom(hwnd) (UINT)MCIWndSM(hwnd, MCIWNDM_GETZOOM, 0, 0)
#define MCIWndSetVolume(hwnd,iVol) (LONG)MCIWndSM(hwnd, MCIWNDM_SETVOLUME, 0, (LPARAM)(UINT)(iVol))
#define MCIWndGetVolume(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETVOLUME, 0, 0)
#define MCIWndSetSpeed(hwnd,iSpeed) (LONG)MCIWndSM(hwnd, MCIWNDM_SETSPEED, 0, (LPARAM)(UINT)(iSpeed))
#define MCIWndGetSpeed(hwnd) (LONG)MCIWndSM(hwnd, MCIWNDM_GETSPEED, 0, 0)
#define MCIWndSetTimeFormat(hwnd, lp) (LONG)MCIWndSM(hwnd, MCIWNDM_SETTIMEFORMAT, 0, (LPARAM)(LPTSTR)(lp))
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?