Que tal...
Tambien puedes obtenerlas asi...
CWinApp *pApp = AfxGetApp();
CGSEDoc *pDoc;
CGSEView *pView;
CDocTemplate*pTemplate;
POSITION pos,pos2,pos3;
ASSERT_VALID(this);
if (pApp->m_pDocManager == NULL)
return ;
m_ListaVistas.ResetContent();
pos = pApp->m_pDocManager->GetFirstDocTemplatePosition();
while (pos != NULL)
{
pTemplate = pApp->m_pDocManager->GetNextDocTemplate(pos);
ASSERT_VALID(pTemplate);
ASSERT_KINDOF(CDocTemplate, pTemplate);
pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
pDoc = (CGSEDoc*)pTemplate->GetNextDoc(pos2);
pos3 = pDoc->GetFirstViewPosition();
pView = (CGSEView *)pDoc->GetNextView(pos3); // get first one
ASSERT_VALID(pView);
if(pView)
{
if(m_ListaVistas.FindStringExact(0,pDoc->GetTitle())<0)
{
if(b_IsMap&&pView->EsMap())
m_ListaVistas.AddString(pDoc->GetTitle());
else if (!b_IsMap&&!pView->EsMap())
m_ListaVistas.AddString(pDoc->GetTitle());
}//if
}
}//while2
}//while1