Activex 一控件如何对参数处理 ,新手 上班第一天接到这东西看不懂不理解

原创 2007年10月09日 12:06:00

STDMETHODIMP CTracker::execute(VARIANT varCommand, VARIANT varParameter, VARIANT *RetVal)
{
 ::VariantInit(RetVal);
 RetVal->vt = VT_BSTR;

 if ((varCommand.vt != VT_BSTR)  || (varCommand.bstrVal == NULL)) {
  RetVal->bstrVal = _com_util::ConvertStringToBSTR("File Not Found!");
  return S_OK;
 }

 FILE *command = fopen(_com_util::ConvertBSTRToString(varCommand.bstrVal),_T("r"));
 if (command) {
  fclose(command);  
  
  char commandLine[1024];
  if ((varParameter.vt == VT_BSTR) && (varParameter.bstrVal != NULL))
   sprintf(commandLine,
           //"/"%s/" /"%s/"",
     "/"%s/" %s",
     _com_util::ConvertBSTRToString(varCommand.bstrVal),
     _com_util::ConvertBSTRToString(varParameter.bstrVal));
  else
   sprintf(commandLine,
           "/"%s/"",
     _com_util::ConvertBSTRToString(varCommand.bstrVal));

  PROCESS_INFORMATION processInfo;              
  STARTUPINFO   startupInfo;  
  memset(&startupInfo,0,sizeof(STARTUPINFO));  
  startupInfo.cb=sizeof(STARTUPINFO);  
  startupInfo.dwFlags=STARTF_USESHOWWINDOW; 
  startupInfo.wShowWindow=SW_SHOW;  

  BOOL bRetValue=::CreateProcess(NULL,  
               (LPTSTR)(LPCTSTR)commandLine,  
                                       NULL,  
                                       NULL,  
                                       FALSE,  
                                       NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,   //?
                                       NULL,  
            NULL,
                                       &startupInfo,  
                                       &processInfo); 
  
  char message[1024];
  if (bRetValue)
   sprintf(message,"Command:%s/nExecuted Sucessfully!",commandLine);
  else {
   DWORD error = GetLastError();
   LPVOID lpMsgBuf;
   FormatMessage(
    FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    error,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    (LPTSTR) &lpMsgBuf,
    0,
    NULL);
   sprintf(message,"Command:%s/nExecuted Falied!/nError Code:%d/nError Message:%s",commandLine,error,lpMsgBuf);
  }
  RetVal->bstrVal = _com_util::ConvertStringToBSTR((LPCTSTR)message);
  
 } else{
  //command not found and to download it
  RetVal->bstrVal = _com_util::ConvertStringToBSTR("File Not Found!");
 }
 
 return S_OK; 

 

那位高手给指点下

版权声明:本文为博主原创文章,未经博主允许不得转载。

作为程序员上班的第一天

2014年07月01日,今天
  • xjb241002
  • xjb241002
  • 2014年07月01日 22:19
  • 1274

上班第一天(1)--一个程序员的成长史(10)

《一个程序员的成长史》系列第十篇。
  • zhouzxi
  • zhouzxi
  • 2016年07月30日 17:42
  • 9245

关于微信的一些总结(一天进步一点,坚持不懈,成功会慢慢向你走进)

一、关于Android动态破解微信本地数据库(EnMicroMsg.db) 的步聚: 微信本地数据库的加密规则: 1.root手机,以便获取su权限,以及修改微信目录的读写权限。 2.获取手机IMEI...
  • u010725842
  • u010725842
  • 2017年10月21日 23:46
  • 164

把程序嵌入网页之ATL编写ActiveX[标准窗口+接受参数]

图文并茂的演示了如何使用ATL开发ActiveX控件,支持网页传参,具有独立窗口,可以像编写普通界面程序那样来编写网页控件。...
  • Sidyhe
  • Sidyhe
  • 2013年09月26日 15:25
  • 5298

开发基于MFC的ActiveX控件的时候的一些消息处理

MFC有PreTranslageMessage() 可以处理一些基于MFC的消息处理。 可是有时候如果你开发一个基于MFC的ActiveX作为容器,内部实现是Win32 或者其他框架会发现,好多消息...
  • sesiria
  • sesiria
  • 2016年08月08日 17:26
  • 1320

MFC ActiveX控件:添加自定义方法

MFC ActiveX 控件:添加自定义方法 链接:http://msdn.microsoft.com/zh-cn/library/cc451420 Visual Studio .NET 20...
  • c_nancy
  • c_nancy
  • 2013年02月05日 14:42
  • 859

登入系统后加载ActiveX控件已被阻止的解决方法

在登入系统之后,系统会自动加载控件,所以浏览器安全级别太高的话是无法加载的,所以要对浏览器进行设置,下面是在加载控件时经常出现的错误,如图5-1和图5-2。   图5-1 ActiveX控件已被阻止 ...
  • w630636065
  • w630636065
  • 2014年02月12日 08:38
  • 9743

让火狐浏览器可以访问含有activex控件网页的三种方式

http://www.cnblogs.com/zhwl/archive/2012/11/22/2782968.html 让火狐浏览器可以访问含有activex控件网页的三种方式 ...
  • wlanye
  • wlanye
  • 2016年06月24日 16:53
  • 15207

基于MFC的ActiveX控件开发

转自:http://www.cnblogs.com/lidabo/archive/2012/12/04/2800921.html ActiveX 控件是基于组件对象模型 (COM) 的可重用软...
  • CSDNwei
  • CSDNwei
  • 2016年09月05日 10:29
  • 998

VC2005开发MFC ActiveX控件基础教程

一.        创建MFC ActiveX项目 1.       打开VS2005新建MFC项目。这里我们取名为“ActiveXDemo”。   2.       输...
  • u011305137
  • u011305137
  • 2014年08月25日 15:13
  • 714
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activex 一控件如何对参数处理 ,新手 上班第一天接到这东西看不懂不理解
举报原因:
原因补充:

(最多只允许输入30个字)