亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmediabookmarker.cpp

?? Windows Media Player CE SDK示范程序, EVC4下的程序。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// CMediaBookmarker.cpp : Implementation of the CMediaBookmarker class
//
// Copyright (c) Microsoft Corporation. All rights reserved.  THIS CODE IS MADE AVAILABLE AS 
// IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE 
// OF THIS CODE REMAINS WITH THE USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OUR 
// WITHOUT MODICATION, IS HEREBY PERMITTED.
//

#include "stdafx.h"
#include "CMediaBookmarker.h"

#include <aygshell.h>

/////////////////////////////////////////////////////////////////////////////
// CMediaBookmarker

// Constructor:

CMediaBookmarker::CMediaBookmarker() :
m_szCurrentFile(NULL),
m_nFilterIndex(0),
m_cMarkCount(0),
m_dwAdviseCookie(0)
{
}

// Destructor:

CMediaBookmarker::~CMediaBookmarker()
{
	delete[] m_szCurrentFile;
	m_szCurrentFile = NULL;
	while (m_cMarkCount)
	{
		--m_cMarkCount;
		SysFreeString(m_bstrFileName[m_cMarkCount]);
		m_bstrFileName[m_cMarkCount] = NULL;
	}
}

// OnCreate: Set up the main window.

LRESULT CMediaBookmarker::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	AtlAxWinInit();

	CComPtr<IConnectionPointContainer> spConnectionContainer;
	HRESULT		hr = S_OK;
	TCHAR*		szPlayerGUID;						// The Windows Media Player Control GUID
	RECT		rcPlayer = { 0, 254, 240, 268 };	// The initial position of the Player window
	HINSTANCE	hInst = _Module.GetModuleInstance();

	// Create the host window for the Windows Media Player control.
	StringFromCLSID(__uuidof(WMP), &szPlayerGUID);
	m_wndView.Create(m_hWnd, rcPlayer, szPlayerGUID, WS_CHILD | WS_VISIBLE, NULL, IDC_PLAYER);
	CoTaskMemFree(szPlayerGUID);

	// Confirm that the host window was created.
	if (NULL == m_wndView.m_hWnd)
	{
		hr = E_FAIL;
	}

	// Retrieve a pointer to the Windows Media Player control interface.
	if (SUCCEEDED(hr))
	{
		hr = m_wndView.QueryControl(&m_spWMPPlayer);
	}

	// Start listening to events.

	if (SUCCEEDED(hr))
	{
		hr = m_spWMPPlayer->QueryInterface( IID_IConnectionPointContainer, (void**)&spConnectionContainer );
	}
	if (SUCCEEDED(hr))
	{
		hr = spConnectionContainer->FindConnectionPoint( __uuidof(_IWMPEvents), &m_spConnectionPoint );
	}
	if (SUCCEEDED(hr))
	{
		hr = m_spConnectionPoint->Advise( (IDispatch*)this, &m_dwAdviseCookie );
	}
	else
	{
		::PostQuitMessage(0);
		return 0;
	}

	// Hide the Windows Media Player control user interface.
	if (FAILED(m_spWMPPlayer->put_ShowControls(FALSE)))
	{
		return 0;
	}
	if (FAILED(m_spWMPPlayer->put_ShowPositionControls(FALSE)))
	{
		return 0;
	}
	if (FAILED(m_spWMPPlayer->put_ShowAudioControls(FALSE)))
	{
		return 0;
	}
	if (FAILED(m_spWMPPlayer->put_ShowTracker(FALSE)))
	{
		return 0;
	}

	// Create the custom user interface.
	CreateWindow(TEXT("BUTTON"), TEXT("Play"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		0, 0, 40, 20, m_hWnd, (HMENU)IDB_PLAY, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("Pause"),	WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		40, 0, 50, 20, m_hWnd, (HMENU)IDB_PAUSE, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("Stop"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		90, 0, 40, 20, m_hWnd, (HMENU)IDB_STOP, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("<<"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		130, 0, 55, 20, m_hWnd,	(HMENU)IDB_FASTREVERSE, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT(">>"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		185, 0, 55, 20, m_hWnd,	(HMENU)IDB_FASTFORWARD, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("Mark"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		0, 20, 40, 20, m_hWnd, (HMENU)IDB_MARK, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("Clear Marks"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		40, 20, 90, 20, m_hWnd, (HMENU)IDB_CLEARMARKS, hInst, NULL);
	CreateWindow(TEXT("BUTTON"), TEXT("Play from Mark"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 
		130, 20, 110, 20, m_hWnd, (HMENU)IDB_PLAYMARK, hInst, NULL);
	CreateWindow(TEXT("LISTBOX"), TEXT("Bookmarks"),
		WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_NOINTEGRALHEIGHT, 
		0, 40, 240, 214, m_hWnd, (HMENU)IDL_BOOKMARKS, hInst, NULL);

	// Create the menu bar.
	SHMENUBARINFO mbi;
	memset(&mbi, 0, sizeof(SHMENUBARINFO));
	mbi.cbSize		= sizeof(SHMENUBARINFO);
	mbi.hwndParent	= m_hWnd;
	mbi.nToolBarId	= IDM_MENU;
	mbi.hInstRes	= hInst;
	mbi.nBmpId		= 0;
	mbi.cBmpImages	= 0;
	SHCreateMenuBar(&mbi);

	return 0;
}

// OnDestroy: Clean up.

LRESULT CMediaBookmarker::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	// Stop listening to events.
	if (m_spConnectionPoint)
	{
		if (0 != m_dwAdviseCookie)
			m_spConnectionPoint->Unadvise(m_dwAdviseCookie);
		m_spConnectionPoint.Release();
	}

	//bHandled = FALSE;
	PostQuitMessage(0);
	return 0;
}

// OnOK: Makes the program inactive and hides the program window.

LRESULT CMediaBookmarker::OnOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	::SendMessage(m_hWnd, WM_ACTIVATE, MAKEWPARAM(WA_INACTIVE, 0), (LPARAM)m_hWnd);
	::SendMessage(m_hWnd, WM_CLOSE, 0, 0);
	return 0;
}

// OnFileOpen: Displays a dialog box that lets the user choose a file to play.

LRESULT CMediaBookmarker::OnFileOpen(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	OPENFILENAME ofn;		// Holds information used with the Open dialog box

	// Initialize the OPENFILENAME struct.
	memset(&ofn, 0, sizeof(ofn));
	ofn.lStructSize		= sizeof(ofn);
	ofn.hwndOwner		= m_hWnd;
	ofn.lpstrFilter		= TEXT("Audio Files\0*.MP3\0Video Files\0*.ASF\0All Files\0*.*\0\0");
	ofn.nFilterIndex	= m_nFilterIndex;
	ofn.lpstrFile		= new TCHAR[ _MAX_PATH ];
	ofn.lpstrFile[0]	= TEXT('\0');
	ofn.nMaxFile		= _MAX_PATH;

	// Confirm that the allocation of ofn.lpstrFile succeeded.
	if (NULL == ofn.lpstrFile)
	{
		return 0;
	}

	// Retrieve the file selection from the Open dialog box.
	if (TRUE == GetOpenFileName(&ofn))
	{
		// Store the filter index.
		m_nFilterIndex = ofn.nFilterIndex;

		// Play the file and store the file name without the path information.
		PlayMedia(ofn.lpstrFile, 0);
	}
	delete[] ofn.lpstrFile;
	ofn.lpstrFile = NULL;
	return 0;
}

// OnFileExit: Exits the program.

LRESULT CMediaBookmarker::OnFileExit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	DestroyWindow();
	return 0;
}

// OnMark: Adds a bookmark to the bookmark list.

LRESULT CMediaBookmarker::OnMark(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	TCHAR *szBookmarkText;  // Temporary storage for formatted bookmark text

	// If there is room in the list, save the bookmark information,
	// update the list, and increment the bookmark count.
	if (m_cMarkCount < MAX_BOOKMARKS)
	{
		szBookmarkText = new TCHAR[MAX_MARKLENGTH];
		if (NULL != szBookmarkText && Bookmark(szBookmarkText))
		{
			if (LB_ERR < ::SendMessage(GetDlgItem(IDL_BOOKMARKS), LB_ADDSTRING, 0, (LPARAM)szBookmarkText))
			{
				::SendMessage(GetDlgItem(IDL_BOOKMARKS), LB_SETCURSEL, m_cMarkCount, 0);
				++m_cMarkCount;
			}
		}
		delete[] szBookmarkText;
		szBookmarkText = NULL;
	} 
	else 
	{
		MessageBox(TEXT("The bookmark list is full."), TEXT("Warning"), MB_OK);
	}
	return 0;
}

// OnClearMarks: Clears the bookmark list.

LRESULT CMediaBookmarker::OnClearMarks(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	if ( m_cMarkCount && 
		 IDOK == MessageBox(TEXT("Clear marks?"), TEXT("Confirm:"), MB_OKCANCEL) )
	{
		// Clear the bookmark list and free the memory held by the file name array.
		while (m_cMarkCount)
		{
			--m_cMarkCount;
			SysFreeString(m_bstrFileName[m_cMarkCount]);
			m_bstrFileName[m_cMarkCount] = NULL;
		}
		::SendMessage(GetDlgItem(IDL_BOOKMARKS), LB_RESETCONTENT, 0, 0) ;
	}
	return 0;
}

// OnPlayMark: Starts playback from a bookmarked position.

LRESULT CMediaBookmarker::OnPlayMark(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	LRESULT iMessageResult;	// The result of messages sent to the bookmark list control

	// Get the current selection from the bookmark list and play it.
	iMessageResult = ::SendMessage(GetDlgItem(IDL_BOOKMARKS), LB_GETCURSEL, 0, 0);
	if (LB_ERR < iMessageResult)
	{
		PlayMedia(m_bstrFileName[iMessageResult], m_dMarkPosition[iMessageResult]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品电影一区亚洲| 成人黄色在线视频| 成人黄色大片在线观看| 91官网在线免费观看| 日韩午夜小视频| 亚洲嫩草精品久久| 国产精品66部| 4438成人网| 亚洲精品免费在线| 国产成+人+日韩+欧美+亚洲| 欧美高清视频一二三区| 亚洲免费观看高清| 成人a级免费电影| 精品久久久久久久久久久久包黑料| 有码一区二区三区| 顶级嫩模精品视频在线看| 日韩一区二区三区av| 一区二区三区日韩欧美精品| 国产91精品精华液一区二区三区 | 国产精品不卡一区| 久久精品国产亚洲5555| 精品视频在线看| 亚洲精品久久嫩草网站秘色| 成人av网站免费| 久久久久久一二三区| 另类专区欧美蜜桃臀第一页| 欧美精品日日鲁夜夜添| 亚洲一区在线观看免费观看电影高清 | 不卡的av电影| 国产精品女主播av| 粉嫩蜜臀av国产精品网站| 国产综合色在线| 欧美成人艳星乳罩| 亚洲欧洲三级电影| 成人av动漫在线| 国产精品污www在线观看| 国产精品一区一区| 精品处破学生在线二十三| 日韩成人精品在线| 欧美一区二区黄| 美腿丝袜亚洲色图| 精品国产伦一区二区三区观看体验| 日韩在线一二三区| 日韩午夜电影av| 久久99国内精品| 久久久久久99久久久精品网站| 国产综合久久久久久鬼色 | 成人app软件下载大全免费| 久久久久国产成人精品亚洲午夜| 久久99热这里只有精品| 久久久精品国产免费观看同学| 国产成人啪午夜精品网站男同| 国产精品久久久久桃色tv| 99精品黄色片免费大全| 亚洲成人www| 日韩欧美国产电影| 成人免费高清在线| 一区二区三区四区在线免费观看 | 日韩欧美亚洲另类制服综合在线| 久久国产精品一区二区| 欧美激情综合五月色丁香小说| www.欧美.com| 午夜影视日本亚洲欧洲精品| 欧美videos中文字幕| 成人av网站在线观看| 午夜精品久久久久久久久| 欧美变态tickle挠乳网站| 不卡电影免费在线播放一区| 亚洲国产精品嫩草影院| 亚洲精品一区二区三区99| 成人a级免费电影| 日韩av一级电影| 中文字幕一区二区不卡| 欧美一区二区视频观看视频| 福利一区二区在线| 香蕉久久夜色精品国产使用方法| 精品国产青草久久久久福利| 色综合色综合色综合 | 国产盗摄女厕一区二区三区 | 国产日韩欧美麻豆| 欧美性欧美巨大黑白大战| 开心九九激情九九欧美日韩精美视频电影| 国产免费观看久久| 91麻豆精品91久久久久同性| 久久久久久久久久看片| 在线免费观看视频一区| 国产一区二区三区在线观看精品 | 成人av免费在线| 日一区二区三区| 亚洲美女少妇撒尿| 国产午夜精品在线观看| 欧美一区二区不卡视频| 色婷婷综合激情| 国产精品一区二区久久精品爱涩| 日韩专区欧美专区| 亚洲美女免费视频| 欧美韩国日本综合| 欧美精品一区二区三区在线播放| 欧美日韩成人在线| 91亚洲永久精品| 丁香婷婷综合网| 黄色成人免费在线| 蜜桃av噜噜一区| 天堂久久久久va久久久久| 日韩伦理免费电影| 国产精品欧美极品| 欧美激情一区不卡| 国产亲近乱来精品视频| 欧美mv和日韩mv的网站| 91精品国产乱码| 3atv在线一区二区三区| 欧美老人xxxx18| 欧美视频一区二区三区四区| 91在线云播放| 91小视频在线免费看| 99久久精品国产毛片| 成人av小说网| 91免费精品国自产拍在线不卡| 成人免费视频国产在线观看| 国产**成人网毛片九色 | 欧美一级日韩免费不卡| 欧美精品aⅴ在线视频| 欧美久久久久久久久| 欧美裸体一区二区三区| 日韩一区二区中文字幕| 精品日韩一区二区三区免费视频| 欧美电视剧在线观看完整版| www欧美成人18+| 国产欧美日韩不卡免费| 亚洲人123区| 亚洲成人动漫在线免费观看| 男男视频亚洲欧美| 国产一区二区三区综合| 成人高清视频在线观看| 色悠久久久久综合欧美99| 欧美日精品一区视频| 日韩丝袜美女视频| 国产亚洲欧美在线| 亚洲欧洲www| 亚洲一区二区视频在线| 欧美日韩一区二区三区高清| 欧美一区二区三区日韩视频| 日韩久久久久久| 中文字幕一区二区三区色视频| 亚洲综合免费观看高清在线观看| 日韩精品免费视频人成| 国产一区二区视频在线| 色综合网色综合| 久久蜜臀精品av| 国产精品素人视频| 亚洲成人免费看| 国产精品综合二区| 欧洲一区在线观看| 精品久久久久久久一区二区蜜臀| 国产精品久久久久久久久果冻传媒 | 国产91综合网| 在线观看国产91| 2017欧美狠狠色| 一区二区三区中文在线观看| 卡一卡二国产精品| 日本道色综合久久| 精品人伦一区二区色婷婷| 亚洲美女在线国产| 国产在线国偷精品产拍免费yy| 91蜜桃传媒精品久久久一区二区| 8x福利精品第一导航| 专区另类欧美日韩| 久久99这里只有精品| 欧美性生活久久| 国产精品青草综合久久久久99| 五月激情综合婷婷| 99国产精品99久久久久久| 日韩免费电影网站| 亚洲第一搞黄网站| 91丨porny丨首页| 精品久久国产老人久久综合| 一区二区三区电影在线播| 国产精品 欧美精品| 日韩欧美亚洲国产精品字幕久久久 | 日本aⅴ亚洲精品中文乱码| 成人性生交大片| 日韩欧美色电影| 亚洲v日本v欧美v久久精品| 91在线视频观看| 中文av一区二区| 国产91精品在线观看| 日韩欧美三级在线| 日本91福利区| 欧美日韩一区二区三区免费看| 国产精品丝袜黑色高跟| 国产一区二区三区香蕉| 精品免费99久久| 蜜臀va亚洲va欧美va天堂| 欧美狂野另类xxxxoooo| 一二三区精品福利视频| 色视频欧美一区二区三区| 亚洲免费av高清| 一本色道a无线码一区v| 亚洲日本一区二区| 色94色欧美sute亚洲线路一久 |