# include“ltmf.h”
# include“resource.h”
# include“tchar.h”
# include“文件”
实例句柄g_hInstance;
/ /应用程序实例句柄
IltmfCapture * g_pCapture;
/ /转换对象的接口指针
/ /
/ / BuildCaptureInputList
/ /填充列表框的内容匹配集合
/ /
/ / pCaptureInputs =输入集合的接口指针
/ / hwndListBox = listbox窗口句柄
/ /
无效BuildCaptureInputList (IltmfCaptureInputs * pCaptureInputs HWND hwndListBox)
{
长我;
长计数;
int选择= 1;
/ /重置列表框的内容
SendMessage (hwndListBox LB_RESETCONTENT 0,0);
/ /得到集合的项数
pCaptureInputs - > get_Count(数);
为(i = 0;我<数;我+ +)
{
IltmfCaptureInput * pCaptureInput;
型型;
TCHAR sz [256];
int指数;
VARIANT_BOOL f;
/ /检索项集合
pCaptureInputs - >项目(我&pCaptureInput);
/ /得到可显示的名字
pCaptureInput - > get_Name(型);
/ /从unicode转换
_stprintf(深圳_T (“% ls”),型);
/ /免费的名字
SysFreeString(型);
/ /将名称添加到列表框
指数= SendMessage (hwndListBox LB_ADDSTRING 0, (LPARAM) (LPCTSTR)深圳);
/ /关联列表框项集合的项的索引
SendMessage (hwndListBox LB_SETITEMDATA,指数i);
/ /记住这个列表框项,如果是在集合中选择
pCaptureInput - > get_Selected (f);
如果(f)
选择=我;
/ /免费收藏项目
pCaptureInput - >释放();
}
/ /选择适当的列表框项
为(i = 0;我<数;我+ +)
{
如果(选择= = (长)SendMessage (hwndListBox LB_GETITEMDATA,我,0))
{
SendMessage (hwndListBox LB_SETCURSEL,我,0);
打破;
}
}
}
/ /
/ / CaptureInputSelectionChanged
/ /打电话反映的变化列表框的选择
/ /
/ / pCaptureInputs =输入集合的接口指针
/ / hwndListBox = listbox窗口句柄
/ /
无效CaptureInputSelectionChanged (IltmfCaptureInputs * pCaptureInputs HWND hwndListBox)
{
int指数;
长项;
int我;
int计数;
HRESULT人力资源;
/ /得到当前的索引列表框的选择
指数= (int)SendMessage (hwndListBox LB_GETCURSEL 0,0);
如果(指数< 0)
{
/ /明确的选择
pCaptureInputs - > put_Selection (1);
}
其他的
{
/ /获取集合项的索引
项= (长)SendMessage (hwndListBox, LB_GETITEMDATA、索引0);
/ /选择项
# ifdef _DEBUG
{
IltmfCaptureInput * pCaptureInput;
pCaptureInputs - >项目(项目、&pCaptureInput);
hr = pCaptureInput - > put_Selected (VARIANT_TRUE);
pCaptureInput - >释放();
}
#其他的
hr = pCaptureInputs - > put_Selection(项);
# endif
/ /如果新的选择失败,我们需要迫使列表框匹配实际的选择
如果(失败(人力资源)
{
/ /得到真正的选择
pCaptureInputs - > get_Selection(项);
/ /找到匹配的列表框项
数= (int)SendMessage (hwndListBox LB_GETCOUNT 0,0);
为(i = 0;我<数;我+ +)
{
如果(项目= = (长)SendMessage (hwndListBox LB_GETITEMDATA,我,0))
{
SendMessage (hwndListBox LB_SETCURSEL,我,0);
打破;
}
}
}
}
}
/ /
/ / SelectCompositeVideo
/ /选择复合视频,如果可用
/ /
/ / pCaptureInputs =输入集合的接口指针
/ / hwndListBox = listbox窗口句柄
/ /
无效SelectCompositeVideo (IltmfCaptureInputs * pCaptureInputs HWND hwndListBox)
{
长项;
型型;
长我;
长计数;
/ /找到复合视频输入
型= SysAllocString (L“视频复合”);
pCaptureInputs - >找到(型、项目);
SysFreeString(型);
/ /当前的选择
如果(项目> = 0)
{
pCaptureInputs - > put_Selection(项);
pCaptureInputs - > get_Count(数);
/ /选择适当的列表框项
为(i = 0;我<数;我+ +)
{
如果(项目= = (长)SendMessage (hwndListBox LB_GETITEMDATA,我,0))
{
SendMessage (hwndListBox LB_SETCURSEL,我,0);
打破;
}
}
}
}
/ /
/ / CaptureInputDlgProc
/ /选择对象的输入
/ /
BOOL调CaptureInputDlgProc (HWND HWND,使用UINT味精,按钮按钮,LPARAM LPARAM)
{
IltmfCaptureInputs * pCaptureInputs;
开关(味精)
{
情况下WM_INITDIALOG:
/ /初始化视频输入列表框
g_pCapture - > get_VideoInputs (&pCaptureInputs);
BuildCaptureInputList (pCaptureInputs GetDlgItem (hwnd, IDC_VIDEOINPUTS));
pCaptureInputs - >释放();
返回真正的;
打破;
情况下WM_COMMAND:
开关(LOWORD(按钮)
{
情况下IDC_SELECTCOMPOSITEVIDEO:
/ /选择复合视频
g_pCapture - > get_VideoInputs (&pCaptureInputs);
SelectCompositeVideo (pCaptureInputs GetDlgItem (hwnd, IDC_VIDEOINPUTS));
pCaptureInputs - >释放();
返回真正的;
打破;
情况下IDC_VIDEOINPUTS:
如果(HIWORD(按钮)= = LBN_SELCHANGE)
{
/ /选择视频输入
g_pCapture - > get_VideoInputs (&pCaptureInputs);
CaptureInputSelectionChanged (pCaptureInputs GetDlgItem (hwnd, IDC_VIDEOINPUTS));
pCaptureInputs - >释放();
}
打破;
情况下IDOK:
EndDialog (hwnd, IDOK);
返回真正的;
打破;
}
打破;
}返回虚假的;
}
intAPIENTRY . WinMain(实例句柄实例句柄,
实例句柄hPrevInstance,
[lpCmdLine,
intnCmdShow)
{
HRESULT人力资源;
IltmfDevices * pDevices;
g_hInstance =实例句柄;
/ /初始化COM库
hr = CoInitialize(空);
如果(失败(人力资源)
转到错误;
/ /创建捕获对象
hr = CoCreateInstance (CLSID_ltmfCapture, NULL, CLSCTX_INPROC_SERVER IID_IltmfCapture (无效* *)&g_pCapture);
如果(失败(人力资源)
转到错误;
/ /选择第一个可用的音频设备
g_pCapture - > get_AudioDevices (&pDevices);
pDevices - > put_Selection (0);
pDevices - >释放();
/ /选择第一个视频设备可用
g_pCapture - > get_VideoDevices (&pDevices);
pDevices - > put_Selection (0);
pDevices - >释放();
对话框(g_hInstance LPCTSTR IDD_INPUTDLG, NULL, CaptureInputDlgProc);错误:
/ /清理
如果(g_pCapture)
g_pCapture - >释放();
CoUninitialize ();
返回0;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。