⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_视频捕获 之 如何使用系统设备枚举器.htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 4 页
字号:
            face="Times New Roman">CoCreateInstance</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">生成系统设备枚举器。类标识(</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">CLSID</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">)为</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">CLSID_SystemDeviceEnum</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21.75pt; TEXT-INDENT: -21.75pt; mso-list: l0 level1 lfo1; tab-stops: list 21.75pt"><SPAN 
            lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN 
            style="mso-list: Ignore"><FONT face="Times New Roman">2.<SPAN 
            style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp; 
            </FONT></SPAN></FONT></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">调用</SPAN><SPAN 
            lang=EN-US><A 
            href="mk:@MSITStore:D:\DXSDK\Doc\DirectX9\DirectX9_c.chm::/directx/htm/icreatedevenumcreateclassenumerator.htm"><SPAN 
            style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"><FONT 
            face="Times New Roman">ICreateDevEnum::CreateClassEnumerator</FONT></SPAN></A></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法生成类型枚举器,参数为你想要得到的类型的</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">CLSID</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,该方法返回一个</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IEnumMoniker</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口指针,如果指定的类型(是空的)或不存在,函数</SPAN><SPAN 
            lang=EN-US><A 
            href="mk:@MSITStore:D:\DXSDK\Doc\DirectX9\DirectX9_c.chm::/directx/htm/icreatedevenumcreateclassenumerator.htm"><SPAN 
            style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"><FONT 
            face="Times New Roman">ICreateDevEnum::CreateClassEnumerator</FONT></SPAN></A></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将返回</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">S_FALSE</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而不是错误代码,同时</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IEnumMoniker</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针(译注:通过参数返回)也是空的,这就要求我们在调用</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">CreateClassEnumerator</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候明确用</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">S_OK</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行比较而不是使用宏</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">SUCCEEDED</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21.75pt; TEXT-INDENT: -21.75pt; mso-list: l0 level1 lfo1; tab-stops: list 21.75pt"><SPAN 
            lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN 
            style="mso-list: Ignore"><FONT face="Times New Roman">3.<SPAN 
            style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp; 
            </FONT></SPAN></FONT></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IEnumMoniker::Next</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法依次得到</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IEnumMoniker</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针中的每个</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">moniker</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。该方法返回一个</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">IMoniker</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接口指针。当</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">Next</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到达枚举的底部,它的返回值仍然是</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">S_FALSE</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,这里我们仍需要用</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">S_OK</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来进行检验。</SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21.75pt; TEXT-INDENT: -21.75pt; mso-list: l0 level1 lfo1; tab-stops: list 21.75pt"><SPAN 
            lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN 
            style="mso-list: Ignore"><FONT face="Times New Roman">4.<SPAN 
            style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp; 
            </FONT></SPAN></FONT></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">想要得到该设备较为友好的名称(例如想要在用户界面中进行显示),调用</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IMoniker::BindToStorage</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法。</SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21.75pt; TEXT-INDENT: -21.75pt; mso-list: l0 level1 lfo1; tab-stops: list 21.75pt"><SPAN 
            lang=EN-US style="mso-fareast-font-family: 'Times New Roman'"><SPAN 
            style="mso-list: Ignore"><FONT face="Times New Roman">5.<SPAN 
            style="FONT: 7pt 'Times New Roman'"><FONT size=3>&nbsp;&nbsp;&nbsp; 
            </FONT></SPAN></FONT></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果想要生成并初始化管理该设备的</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">Filter</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">调用</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">3</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">返回指针的</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IMonitor::BindToObject</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法,接下来调用</SPAN><SPAN 
            lang=EN-US><FONT 
            face="Times New Roman">IFilterGraph::AddFilter</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把该</SPAN><SPAN 
            lang=EN-US><FONT face="Times New Roman">Filter</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">添加到视图中。</SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下图说明了上述步骤:</SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            lang=EN-US><?xml:namespace prefix = v ns = 
            "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 
            stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" 
            o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke 
            joinstyle="miter"></v:stroke><v:formulas><v:f 
            eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f 
            eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f 
            eqn="prod @2 1 2"></v:f><v:f 
            eqn="prod @3 21600 pixelWidth"></v:f><v:f 
            eqn="prod @3 21600 pixelHeight"></v:f><v:f 
            eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f 
            eqn="prod @7 21600 pixelWidth"></v:f><v:f 
            eqn="sum @8 21600 0"></v:f><v:f 
            eqn="prod @7 21600 pixelHeight"></v:f><v:f 
            eqn="sum @10 21600 0"></v:f></v:formulas><v:path 
            o:connecttype="rect" gradientshapeok="t" 
            o:extrusionok="f"></v:path><o:lock aspectratio="t" 
            v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 
            style="HEIGHT: 143.25pt; WIDTH: 259.5pt" 
            type="#_x0000_t75"><v:imagedata o:title="EnumProcess" 
            src="file:///C:\DOCUME~1\Owner\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg"></v:imagedata></v:shape></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面的代码示例了如何枚举用户系统中的视频压缩器,为了简化,只给出了很少的错误检查。</SPAN></P>
            <P>
            <TABLE border=1 cellPadding=0 cellSpacing=0 class=MsoTableGrid 
            style="BACKGROUND: silver; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; BORDER-LEFT: medium none; BORDER-RIGHT: medium none; BORDER-TOP: medium none; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid silver; mso-border-insidev: .5pt solid silver">
              <TBODY>
              <TR 
              style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
                <TD 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -