  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		劉紀樂
 
 
  註冊時間: 2003-10-12 文章: 7
 
  第 1 樓
  | 
		
			
				 發表於: 星期四 十月 16, 2003 1:19 am    文章主題: 請問mciSendCommand語法 | 
				     | 
			 
			
				
  | 
			 
			
				先前在 "飛狐" 網發問過後,就一直進不去,不知是否有人指點? 故在此重新發問,請勿見怪
 
 
問題如下:
 
1.在MSDN有下列語法:
 
MCIERROR mciSendCommand(
 
  MCIDEVICEID wDeviceID, 
 
  MCI_OPEN, 
 
  DWORD dwFlags, 
 
  (DWORD) (LPMCI_OPEN_PARMS) lpOpen
 
);
 
 
2.C之範例,主要有DIGITALV.H與MCIPLAY.C二個檔
 
***File: DIGITALV.H***
 
#ifndef _INC_DIGITALV
 
#define _INC_DIGITALV  100
 
 
#ifdef __cplusplus
 
extern "C" {            /* Assume C declarations for C++ */
 
#endif	/* __cplusplus */
 
 
#define MCI_TEST                            0x00000020L
 
●(註1)
 
●
 
/* flags for dwFlags parameter of MCI_OPEN command message */
 
 
#define MCI_DGV_OPEN_WS                     0x00010000L 
 
#define MCI_DGV_OPEN_PARENT                 0x00020000L
 
#define MCI_DGV_OPEN_NOSTATIC               0x00040000L
 
#define MCI_DGV_OPEN_16BIT                  0x00080000L
 
#define MCI_DGV_OPEN_32BIT                  0x00100000L
 
●
 
●
 
/* parameter block for MCI_OPEN command message */
 
typedef struct {
 
    DWORD   dwCallback;
 
    UINT    wDeviceID;
 
#ifndef _WIN32
 
    WORD    wReserved0;
 
#endif
 
    LPSTR   lpstrDeviceType;
 
    LPSTR   lpstrElementName;
 
    LPSTR   lpstrAlias;
 
    DWORD   dwStyle;
 
    HWND    hWndParent;
 
#ifndef _WIN32
 
    WORD    wReserved1;
 
#endif
 
} MCI_DGV_OPEN_PARMS;
 
●
 
●
 
============================================================
 
***File: MCIPLAY.C***
 
#include "windows.h"    // Windows API support
 
#include "windowsx.h"	// Windows API shortcut macros
 
#include "mmsystem.h"	// Windows MCI support
 
#include "commdlg.h"    // common dialogs support
 
#include "mciplay.h"
 
#include "digitalv.h"	//MCI Digital Video Command Set
 
●
 
●
 
FARPROC lpProcAbout;
 
RECT rc;
 
MCI_DGV_OPEN_PARMS mciMO; (問題1)
 
MCI_PLAY_PARMS	mciPlay;
 
MCI_DGV_RECT_PARMS mciRect;
 
MCI_DGV_SETVIDEO_PARMS mciSetVideo;
 
DWORD dwResult,dwFlags;
 
●
 
●
 
mciMO.lpstrDeviceType="MpegVideo";
 
mciMO.lpstrElementName=ofn.lpstrFile;
 
mciMO.lpstrAlias=0;
 
mciMO.dwCallback=0;
 
mciMO.wDeviceID=0;
 
mciMO.dwStyle=WS_CHILD|WS_BORDER|WS_DISABLED; (問題2)
 
 
mciMO.hWndParent=hWnd;
 
 
dwFlags=(DWORD)(MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT|MCI_DGV_OPEN_WS); (問題3)
 
 
dwResult=mciSendCommand(0,MCI_OPEN,dwFlags,(DWORD)(LPMCI_DGV_OPEN_PARMS) mciMO); (問題4)
 
●
 
●
 
註1:. ●代表中間尚有程式碼,為讓文章簡短予以省略
 
 
請問如何將問題1~4寫成VFP語法,懇請各位惠予指導,感激不盡。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 2 樓
  | 
		
			
				 發表於: 星期四 十月 16, 2003 12:17 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不知道你到底要達到何種目地, 如果利用本站的搜尋功能來找 MCI 看看以前的文章是否有類似的答案. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		劉紀樂
 
 
  註冊時間: 2003-10-12 文章: 7
 
  第 3 樓
  | 
		
			
				 發表於: 星期六 十月 18, 2003 1:53 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				非常感謝Garfield 的答覆,我曾在貴板搜尋過有關mciSendCommand相關文章,皆未獲得想要內容,我的用途是想以VFP來控制多媒體播放,我嚐試過用MCI32.ocx物件來控制,可是其功能太簡單,像音效卡之左右聲道就無法控制,於是遍詢朋友得到上述之C範例,不過其語法不知如何轉成VFP語法,C之語法如下:
 
MCIERROR mciSendCommand(
 
  MCIDEVICEID IDDevice,   
 
  UINT        uMsg,       
 
  DWORD       fdwCommand, 
 
  DWORD_PTR   dwParam     
 
);
 
 
Parameters
 
IDDevice
 
Device identifier of the MCI device that is to receive the command message. This parameter is not used with the MCI_OPEN command message. 
 
 
uMsg
 
Command message. For a list, see Multimedia Commands.
 
 
fdwCommand
 
Flags for the command message. 
 
 
dwParam
 
Pointer to a structure that contains parameters for the command message. 
 
 
1.請問VFP宣告是否如下:
 
DECLARE INTEGER mciSendCommand IN winmm INTEGER IDDevice,  INTEGER uMsg, INTEGER fdwCommand ,  INTEGER @dwParam
 
 
2. 請問下列如何轉成VFP語法?
 
#define MCI_DGV_OPEN_WS                     0x00010000L 
 
#define MCI_DGV_OPEN_PARENT                 0x00020000L
 
fdwCommand=(DWORD)(MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT|MCI_DGV_OPEN_WS)
 
 
3.
 
MCI_DGV_OPEN_PARMS mciMO; (VFP如何定義?)
 
mciMO.lpstrDeviceType="MpegVideo";
 
mciMO.lpstrElementName=ofn.lpstrFile;
 
mciMO.lpstrAlias=0;
 
mciMO.dwCallback=0;
 
mciMO.wDeviceID=0;
 
mciMO.dwStyle=WS_CHILD|WS_BORDER|WS_DISABLED;
 
=mciSendCommand(0,MCI_OPEN,fdwCommand,(DWORD)(LPMCI_DGV_OPEN_PARMS) mciMO)
 
(DWORD)(LPMCI_DGV_OPEN_PARMS) mciMO
 
(VFP如何傳遞?)
 
 
抱歉,表達能力不好,不知您是否了解我的問題,若是,請盡量幫忙,感謝您的費心 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 4 樓
  | 
		
			
				 發表於: 星期六 十月 18, 2003 6:45 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				那就等待高人解答吧! _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Ruey
 
 
  註冊時間: 2003-03-12 文章: 1698 來自: tunglo
  第 5 樓
  | 
		
			
				 發表於: 星期日 十月 19, 2003 10:59 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果是音效卡之左右聲道控制.我記得有一篇範例.標題忘記了. _________________ #############################
 
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
 
 
學會VFP使用者社區的搜尋,Code才會更有趣~
 
############################# | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		劉紀樂
 
 
  註冊時間: 2003-10-12 文章: 7
 
  第 6 樓
  | 
		
			
				 發表於: 星期日 十月 19, 2003 11:06 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| Ruey我用聲道查詢,雖沒查到,卻查到你張貼的十則鬼笑話,你們管理這版面很用心,發表了很多有用文章及讓人會新一笑之幽默笑話,讓我受益匪淺,調劑良多 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Ruey
 
 
  註冊時間: 2003-03-12 文章: 1698 來自: tunglo
  第 7 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |