Hresult hR = s_ OK; Icapturegraphbuilder2 * m_pcapturebuilder = NULL; Igraphbuilder * m_pfiltergraph = NULL; // Step 1: Create the icapturegraphbuilder2 Interface HR = cocreateinstance (refclsid) clsid_capturegraphbuilder2, null, clsctx_inproc, (Refiid) iid_icapturegraphbuilder2, (void **) & m_pcapturebuilder ); If (succeeded (HR )) {
// Step 2: Create the igraphbuilder Interface HR = cocreateinstance (clsid_filtergraph, null, clsctx_inproc, Iid_igraphbuilder, (lpvoid *) & m_pfiltergraph ); If (succeeded (HR )) { // Step 3: Call the setfiltergraph method of icapturebuilder to add filtergraph to builder. HR = m_pcapturebuilder-> setfiltergraph (m_pfiltergraph ); If (succeeded (HR )) { // Query each interface to obtain the media control interface, which controls the status of the entire Graph HR = m_pfiltergraph-> QueryInterface (iid_imediacontrol, (void **) & m_pmideacontrol ); DWORD dflags; If (succeeded (addtoobjecttable (m_pfiltergraph, & dflags ))) { Return true; } } } } |