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

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

?? vcmd.cpp

?? voice command project, SAPI SDK
?? CPP
字號:
/******************************************************************************
*       This module contains functions which handle interaction with the Voice 
*       Command and Voice Messages interface.
*
*       This code and information is provided "as is" without warranty
*       of any kind, either expressed or implied, including but not
*       limited to the implied warranties of merchantability and/or
*       fitness for a particular purpose.
*
Copyright (c) 1995-1998 by Microsoft Corporation

 *
 *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
 *  ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
 *  TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR
 *  A PARTICULAR PURPOSE.
 *
*/




#include "vcmd.h"

PCIVCmdNotifySink gpVCmdNotifySink = NULL;
PCIVTxtNotifySink gpVTxtNotifySink = NULL;
PIVOICECMD        gpIVoiceCommand  = NULL;
PIVCMDDIALOGS     gpIVCmdDialogs   = NULL;
PIVCMDMENU        gpIVCmdMenu      = NULL;
PIVCMDATTRIBUTES  gpIVCmdAttr      = NULL;
PIVOICETEXT		  gpIVTxt          = NULL;
PIVTXTATTRIBUTES  gpIVTxtAttr      = NULL;
UINT              uTimerID = 0;
DWORD             gdwShowReEnable;


/*
 Begin OLE and create the interface pointers and an empty menu object.

returns
   BOOL - TRUE if is succedes, FALSE if error.
*/
BOOL BeginOLE()
{
	HRESULT  hRes;
	VCMDNAME VcmdName;
	LANGUAGE Language;

	SetMessageQueue(96);

	if( FAILED(CoInitialize(NULL)) )
		return ReleaseInterfaces( "CoInitialize() failed." );

	// Create the voice commands object
	if(CoCreateInstance(CLSID_VCmd, NULL, CLSCTX_LOCAL_SERVER, IID_IVoiceCmd, (LPVOID *)&gpIVoiceCommand) != S_OK)
		return ReleaseInterfaces("Error in CoCreateInstance() for VCmd interface." );

	// Get the dialogs interface pointer...
	hRes = gpIVoiceCommand->QueryInterface( IID_IVCmdDialogs, (LPVOID FAR *)&gpIVCmdDialogs );
	if( FAILED(hRes) ) return ReleaseInterfaces( "QueryInterface() failed to obtain VCmd Dialogs interface." );

	// Get the attributes interface pointer...
	hRes = gpIVoiceCommand->QueryInterface( IID_IVCmdAttributes, (LPVOID FAR *)&gpIVCmdAttr );
	if( FAILED(hRes) ) return ReleaseInterfaces( "QueryInterface() failed to obtain VCmd Attributes interface." );

	// Create/Register VCmd notification sink...
	gpVCmdNotifySink = new CIVCmdNotifySink;
	if( gpVCmdNotifySink == NULL )
		return ReleaseInterfaces( "Out of memory for Voice notification object." );

	hRes = gpIVoiceCommand->Register( "", gpVCmdNotifySink, IID_IVCmdNotifySink, VCMDRF_ALLMESSAGES, NULL );
	if( FAILED(hRes) )
		return ReleaseInterfaces( "Failed to Register() Voice notification sink." );

	// Initialize command menu set variables...
/*	lstrcpy(VcmdName.szApplication, "SR Clock Demo");
	lstrcpy(VcmdName.szState, "Main");
	Language.LanguageID = LANG_ENGLISH;
	lstrcpy (Language.szDialect, "US English");

	// Create an empty command menu set...
	hRes = gpIVoiceCommand->MenuCreate( &VcmdName, &Language, VCMDMC_CREATE_TEMP, &gpIVCmdMenu );
	if( FAILED(hRes) ) return ReleaseInterfaces( "Failed to create a voice command set with MenuCreate()" );

	// Create a voice text object...
	if(CoCreateInstance(CLSID_VTxt, NULL, CLSCTX_LOCAL_SERVER, IID_IVoiceText, (LPVOID *)&gpIVTxt) != S_OK)
		return ReleaseInterfaces("Error in CoCreateInstance() for Text-To-Speech interface." );

	// Get the attributes interface pointer...
	hRes = gpIVTxt->QueryInterface( IID_IVTxtAttributes, (LPVOID FAR *)&gpIVTxtAttr );
	if( FAILED(hRes) ) return ReleaseInterfaces( "QueryInterface() failed to obtain VTxt Attributes interface." );

	// Create/Register VTxt notification sink...
	gpVTxtNotifySink = new CIVTxtNotifySink;
	if( gpVTxtNotifySink == NULL )
		return ReleaseInterfaces( "Out of memory for VTxt notification object." );

	hRes = gpIVTxt->Register( NULL, "SRClock", gpVTxtNotifySink, IID_IVTxtNotifySink, VTXTF_ALLMESSAGES, NULL);
	if( FAILED(hRes) )
		return ReleaseInterfaces( "Failed to Register() VTxt notification sink." );

  */

	return TRUE;
}

/*
 Closes up OLE and frees everything else.
*/
BOOL EndOLE()
{
	// free our list of cities/time-zone bias data...
	free( gCityList );

	ReleaseInterfaces( "" );

	// Free up all of OLE
	CoUninitialize();

	return TRUE;
}



/**************************************************************************
 *  Voice Command notification objects
 **************************************************************************/

CIVCmdNotifySink::CIVCmdNotifySink (void)
{
    m_dwRefCnt = 0;
}

CIVCmdNotifySink::~CIVCmdNotifySink (void)
{
}

STDMETHODIMP CIVCmdNotifySink::QueryInterface (REFIID riid, LPVOID *ppv)
{
	*ppv = NULL;

    /* always return our IUnkown for IID_IUnknown */
    if (IsEqualIID (riid, IID_IUnknown) || IsEqualIID(riid,IID_IVCmdNotifySink)) {
        *ppv = (LPVOID) this;
        return NOERROR;
    }

    // otherwise, cant find
    return ResultFromScode (E_NOINTERFACE);
}

STDMETHODIMP_ (ULONG) CIVCmdNotifySink::AddRef (void)
{
    // normally this increases a reference count, but this object
    // is going to be freed as soon as the app is freed, so it doesn't
    // matter
    return 1;
}

STDMETHODIMP_(ULONG) CIVCmdNotifySink::Release (void)
{
	// normally this releases a reference count, but this object
    // is going to be freed when the application is freed so it doesnt
    // matter
    return 1;
}

/*
 Handle recognition notification.

 Inputs:
 dwID         - Id of this instance of Voice command object.
 pName        - 
 dwFlags      -
 dwActionSize -
 pAction      - The index of the command in the command list (1 based).
 dwNumLists   -
 pszListValue - 
 pszCommand   - 
*/
STDMETHODIMP CIVCmdNotifySink::CommandRecognize(DWORD dwID, PVCMDNAME pName, DWORD dwFlags,
   DWORD dwActionSize, PVOID pAction, DWORD dwNumLists, PTSTR pszListValues, PTSTR pszCommand)
{

	
	MessageBox(hWnd,"SpeechReg",pszCommand ? pszCommand : "[Unrecognized]",MB_OK);

	return NOERROR;
}


 STDMETHODIMP CIVCmdNotifySink::CommandOther(PVCMDNAME pName, PTSTR pszCommand)
{
	MessageBox(hWnd,"SpeechReg",pszCommand ? pszCommand : "[Unrecognized]",MB_OK);

	return NOERROR;
}

/*
 Handle notifiaction sent when recognition begins.
*/
STDMETHODIMP CIVCmdNotifySink::CommandStart(void)
{
	return NOERROR;
}

/*
 Handle notification sent when the menu is activated/deactivated.
*/
STDMETHODIMP CIVCmdNotifySink::MenuActivate(PVCMDNAME pName, BOOL bActivate)
{
	return NOERROR;
}

/*
 Handle notification sent when the attribute is changed.
*/
STDMETHODIMP CIVCmdNotifySink::AttribChanged(DWORD dwAttribute)
{
	return NOERROR;
}

/*
 Handle notification sent when the recognizer detects the beginning of an utterance.
*/
STDMETHODIMP CIVCmdNotifySink::UtteranceBegin(void)
{
		
	return NOERROR;
}

/*
 Handle notification sent when the recognizer detects the end of an utterance.
*/
STDMETHODIMP CIVCmdNotifySink::UtteranceEnd()
{
	// if we're not in wide mode, indicate the status to the user
	// by changing the window title...
	
	return NOERROR;
}

/*
 Handle notification sent to indicate amplitude of incoming audio data.
*/
STDMETHODIMP CIVCmdNotifySink::VUMeter(WORD wLevel)
{
	// paint the view meter abse3d on data from notification...


	return NOERROR;
}

/*
 Handle notification sent when the recognizer detects interference
*/
STDMETHODIMP CIVCmdNotifySink::Interference(DWORD dwType)
{
	return NOERROR;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级中文字幕| 激情深爱一区二区| 精品日韩在线观看| 91亚洲精品久久久蜜桃网站| 日本免费新一区视频| 亚洲欧洲制服丝袜| 欧美一区二区成人| 91精品蜜臀在线一区尤物| 99re热视频精品| 成人高清视频在线| www.亚洲在线| 色哟哟一区二区三区| 国产综合色产在线精品| 久久精品国产亚洲a| 日本三级韩国三级欧美三级| 五月天国产精品| 国产精品国产三级国产三级人妇 | 欧美久久久久久久久久| 91网址在线看| 国产一区中文字幕| 久久精品国产99国产精品| 美女视频黄a大片欧美| 丝袜诱惑亚洲看片| 精品少妇一区二区三区在线播放| 欧美日韩亚洲不卡| 91精品国产综合久久久蜜臀图片| 欧美三级三级三级爽爽爽| 日本乱人伦一区| 精品视频全国免费看| 欧美三级韩国三级日本一级| 精品视频免费在线| 欧美一区二区人人喊爽| 日韩午夜激情av| 久久免费的精品国产v∧| 日韩一区二区在线观看| 精品理论电影在线观看 | 国产精品久久毛片a| 久久久久久久久久电影| ㊣最新国产の精品bt伙计久久| 国产精品久线观看视频| 亚洲欧美综合另类在线卡通| 一区二区久久久| 午夜视频一区二区三区| 天天影视色香欲综合网老头| 久88久久88久久久| 99精品热视频| 色狠狠色噜噜噜综合网| 欧美日韩国产一级| 国产蜜臀av在线一区二区三区| 日韩美女视频一区二区| 亚洲精品成人a在线观看| 亚洲午夜在线观看视频在线| 久久精品国产澳门| 99久久国产综合精品麻豆| 日韩一区二区中文字幕| 国产精品人妖ts系列视频| 三级一区在线视频先锋| 精品少妇一区二区三区视频免付费| 国产午夜精品一区二区三区视频| 午夜一区二区三区在线观看| 91免费小视频| 亚洲国产精品成人综合 | 亚洲一区日韩精品中文字幕| 丁香六月综合激情| 久久精品一区二区三区四区| 午夜电影一区二区| 欧美精品一卡二卡| 亚洲超碰97人人做人人爱| 日本精品一级二级| 中文字幕一区在线观看| 高清国产一区二区| 国产精品无圣光一区二区| 国产一区999| 日本一区二区三区电影| 国产精品一区二区三区四区| 26uuu色噜噜精品一区二区| 蜜臀av在线播放一区二区三区| 欧美精品乱码久久久久久按摩| 一区二区三区国产精品| 欧美伊人久久大香线蕉综合69| 亚洲靠逼com| 精品视频1区2区3区| 日欧美一区二区| 日韩一级高清毛片| 激情欧美日韩一区二区| 久久久亚洲国产美女国产盗摄| 激情综合色综合久久综合| 精品国产免费一区二区三区香蕉| 久久99国产精品免费网站| 精品久久久久99| 国产不卡视频一区| 亚洲人成伊人成综合网小说| 色婷婷久久99综合精品jk白丝| 亚洲一区在线看| 91精品国产一区二区三区香蕉| 麻豆国产一区二区| 久久久久久久久久久久久夜| 成人免费三级在线| 亚洲精品国产一区二区三区四区在线| 色乱码一区二区三区88| 天天综合日日夜夜精品| www日韩大片| 91猫先生在线| 久久精品国产999大香线蕉| 久久午夜电影网| 色美美综合视频| 久久精品999| 亚洲免费伊人电影| 日韩一区二区中文字幕| 成人久久18免费网站麻豆 | 日韩精品一区二区三区视频| 久久精品国产一区二区三区免费看| 精品国产乱码久久久久久1区2区| 成人精品电影在线观看| 午夜精品影院在线观看| 国产视频在线观看一区二区三区| 日本高清免费不卡视频| 精品亚洲国内自在自线福利| 亚洲视频精选在线| 精品播放一区二区| 日本韩国欧美在线| 国产精品一二三| 肉肉av福利一精品导航| 亚洲精品久久嫩草网站秘色| 精品成人免费观看| 欧美三级日韩在线| 色婷婷香蕉在线一区二区| 国产一区二区三区蝌蚪| 午夜成人在线视频| 亚洲精品视频一区| 国产精品无遮挡| 久久丝袜美腿综合| 日韩欧美一区电影| 欧美探花视频资源| 91丨九色丨蝌蚪富婆spa| 国产一区二区三区香蕉| 免费看精品久久片| 亚洲最色的网站| 亚洲欧洲av在线| 国产精品亲子伦对白| 久久精品夜夜夜夜久久| 欧美一区二区高清| 欧美另类久久久品| 国产精品短视频| 欧美国产国产综合| 久久嫩草精品久久久久| 久久综合色一综合色88| 日韩一区二区三区av| 91精品午夜视频| 欧美精品九九99久久| 欧美日韩国产另类不卡| 在线精品视频小说1| 91影院在线观看| 色8久久人人97超碰香蕉987| 色综合久久久久网| 一本到不卡精品视频在线观看| 成人app在线| 91在线视频在线| 一本到三区不卡视频| 91论坛在线播放| 欧美三级三级三级爽爽爽| 欧美视频一二三区| 777a∨成人精品桃花网| 欧美一区二区免费观在线| 欧美一级黄色大片| 精品成人一区二区三区| 国产亚洲综合在线| 国产欧美va欧美不卡在线| 国产精品国产三级国产专播品爱网 | 中文字幕一区二区三区四区不卡 | 99re在线精品| 欧洲亚洲精品在线| 日韩一区二区中文字幕| 欧美一级黄色大片| 国产精品国产三级国产aⅴ无密码| 综合网在线视频| 午夜欧美视频在线观看| 精品在线免费视频| 99视频精品在线| 欧美久久高跟鞋激| 国产女主播一区| 一区二区三区免费观看| 日韩不卡一区二区| 国产精品亚洲第一区在线暖暖韩国 | 色爱区综合激月婷婷| 6080亚洲精品一区二区| 久久伊人蜜桃av一区二区| 最新国产成人在线观看| 亚洲高清视频的网址| 国内精品嫩模私拍在线| 欧美亚洲尤物久久| 久久一夜天堂av一区二区三区| 亚洲美女精品一区| 国产精品中文字幕日韩精品| 欧美在线观看一区二区| 久久老女人爱爱| 亚洲无人区一区| 成人黄色国产精品网站大全在线免费观看| 国产精品少妇自拍| 亚洲.国产.中文慕字在线|