共用方式為


IDebugDocumentContext2::EnumCodeContexts

擷取一份與這個文件內容相關聯的所有程式碼內容。

HRESULT EnumCodeContexts( 
   IEnumDebugCodeContexts2** ppEnumCodeCxts
);
int EnumCodeContexts( 
   out IEnumDebugCodeContexts2 ppEnumCodeCxts
);

參數

傳回值

如果成功的話,會傳回S_OK。 否則,會傳回錯誤碼。

備註

單一文件內容可以產生多個程式碼內容,當文件使用範本,或包含檔案。

範例

下列範例會示範如何實作這個方法,如CDebugContext物件,公開 (expose) IDebugDocumentContext2介面。

HRESULT CDebugContext::EnumCodeContexts(IEnumDebugCodeContexts2 **ppEnumCodeCxts)  
{  
   HRESULT hr;  
  
   // Check for a valid IEnumDebugCodeContexts2 interface pointer.  
   if (ppEnumCodeCxts)  
   {  
      *ppEnumCodeCxts = NULL;  
  
      // Create a CEnumDebugCodeContexts object.  
      CComObject<CEnumDebugCodeContexts>* pEnum;  
      hr = CComObject<CEnumDebugCodeContexts>::CreateInstance(&pEnum);  
      assert(hr == S_OK);  
      if (hr == S_OK)  
      {  
         // Get an IID_IDebugCodeContext2 interface.  
         CComPtr<IDebugCodeContext2> spCodeCxt;  
         hr = QueryInterface(IID_IDebugCodeContext2,
                             (void**)&spCodeCxt);
         assert(hr == S_OK);  
         if (hr == S_OK)  
         {  
            // Initialize the code context enumerator with the  
            // IDebugCodeContext2 information.
            IDebugCodeContext2* rgpCodeContext[] = { spCodeCxt.p };  
            hr = pEnum->Init(rgpCodeContext,
                             &(rgpCodeContext[1]),
                             NULL,
                             AtlFlagCopy);
            assert(hr == S_OK);  
            if (hr == S_OK)  
            {  
               // Set the passed IEnumDebugCodeContexts2 pointer equal to the pointer
               // value of the created CEnumDebugCodeContexts object.
               hr = pEnum->QueryInterface(ppEnumCodeCxts);  
               assert(hr == S_OK);  
            }  
         }  
  
         // Otherwise, delete the CEnumDebugCodeContexts object.  
         if (FAILED(hr))  
         {  
            delete pEnum;  
         }  
      }  
   }  
   else  
   {  
      hr = E_INVALIDARG;  
   }  
  
   return hr;  
}  

請參閱

參考

IDebugDocumentContext2

IEnumDebugCodeContexts2