CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

那为大侠帮忙把以下VB代码转成 VC的?我实在是不会了

楼主withoutway(没办法)2003-06-03 13:46:56 在 VC/MFC / ATL/ActiveX/COM 提问

Dim   sh   As   New   Shell32.Shell  
  Const   stra   =   "windows"  
  Private   Sub   Form_Load()  
  printFolder   (6)  
  End   Sub  
   
  Sub   printFolder(namespace   As   Variant)  
   
  Dim   f   As   Folder  
  Dim   itm   As   Shell32.FolderItem  
  Dim   l   As   Shell32.ShellLinkObject  
  Set   f   =   sh.namespace(namespace)  
  For   i   =   0   To   f.Items.Count   -   1  
          Debug.Print   f.Items.Item(i).Name,  
          Debug.Print   f.Items.Item(i).IsLink,  
          If   f.Items.Item(i).IsLink   Then  
                  Set   l   =   f.Items.Item(i).GetLink  
                  Debug.Print   l.Path  
                  If   InStr(1,   l.Path,   stra)   <>   0   Then   MsgBox   "got!"  
                  If   InStr(1,   f.Items.Item(i).Name,   stra)   <>   0   Then   MsgBox   "got!"  
          ElseIf   f.Items.Item(i).IsFolder   Then  
                  printFolder   f.Items.Item(i).Path  
          End   If  
          Debug.Print  
  Next  
  End   Sub 问题点数:20、回复次数:4Top

1 楼blueblood7()回复于 2003-06-04 13:09:28 得分 20

#import   "shell32.dll"  
  const   char*   stra   =   "windows";  
  void   printFolder(   _variant_t   vPath   );  
  HRESULT   hr   =   0;  
  Shell32::IShellDispatchPtr   sh   =   NULL;  
   
  void   CTest5Dlg::OnButton1()    
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
   
  hr   =   CoInitialize(NULL);  
  if(   FAILED(hr)   )   return;  
   
  hr   =   sh.CreateInstance(   __uuidof(Shell)   );  
  if(   SUCCEEDED(hr)   )  
  printFolder(   (long)6   );  
   
  CoUninitialize();  
  }  
   
  void   printFolder(   _variant_t   vPath   )  
  {  
  Shell32::FolderPtr   f   =   NULL;  
  Shell32::FolderItemsPtr   itms   =   NULL;  
  Shell32::FolderItemPtr   itm   =   NULL;  
  Shell32::IShellLinkDualPtr   l   =   NULL;  
   
  f   =   sh->NameSpace(   vPath   );  
  itms   =   f->Items();  
   
  for(   long   i=0;   i<=itms->Count-1;   i++   )  
  {  
  itm   =   itms->Item(i);  
  TRACE(   "%s   ",   (char*)itm->Name   );  
  TRACE(   "%d   ",   itm->IsLink   );  
  if(   itm->IsLink   )  
  {  
  l   =   itm->GetGetLink();    
  TRACE(   "%s",   (char*)l->Path   );  
  if(   NULL   !=   strstr((char*)l->Path,   stra)   )   AfxMessageBox("got!");  
  if(   NULL   !=   strstr((char*)itm->Name,   stra)   )   AfxMessageBox("got!");  
  }  
  else  
  {  
  printFolder(   itm->Path   );  
  }  
  TRACE(   "\n"   );  
  }  
  }Top

2 楼zzyx(菜农)回复于 2003-06-04 16:39:19 得分 0

blueblood7()   太cool了Top

3 楼xiaohedou(小河豆(充电中.18%.))回复于 2003-06-05 14:02:36 得分 0

经典!  
   
  #import   "shell32.dll"  
  hr   =   CoInitialize(NULL);  
  ...  
  hr   =   sh.CreateInstance(   __uuidof(Shell)   );  
  ...  
  printFolder(   (long)6   );  
                 
              CoUninitialize();  
  绝妙!Top

4 楼xiaohedou(小河豆(充电中.18%.))回复于 2003-06-05 14:07:01 得分 0

我说的是blueblood7Top

相关问题

  • VB.NET代码转成C#?
  • VC代码转成VB
  • 谁能帮我转成C#代码。
  • 谁能帮我转成C#代码。
  • VB的代码则么转成pascal,一行代码
  • 怎么样把下面的代码转成vb.net代码
  • C#代码转成ASP.Net代码的疑问
  • VC 的一句代码转成C#的代码
  • 高分求下面asp代码转成c#代码。谢谢了
  • 100分,请教这段asp3.0的代码怎么转成c#代码?急~~

关键词

  • shell
  • hr
  • debug
  • null
  • printfolder
  • itm
  • stra
  • islink
  • shell32
  • item

得分解答快速导航

  • 帖主:withoutway
  • blueblood7

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo