收录查询

句柄定义的地方和ShellExecute()函数的使用

句柄定义的地方:
<wtypes.h>头文件中

typedef void __RPC_FAR *HANDLE;

typedef void __RPC_FAR *HMODULE;

typedef void __RPC_FAR *HINSTANCE;

typedef void __RPC_FAR *HRGN;

typedef void __RPC_FAR *HTASK;

typedef void __RPC_FAR *HKEY;

typedef void __RPC_FAR *HDESK;

typedef void __RPC_FAR *HMF;

typedef void __RPC_FAR *HEMF;

typedef void __RPC_FAR *HPEN;

typedef void __RPC_FAR *HRSRC;

typedef void __RPC_FAR *HSTR;

typedef void __RPC_FAR *HWINSTA;

typedef void __RPC_FAR *HKL;

typedef void __RPC_FAR *HGDIOBJ;

=================================
DEMO CODE:

//hello1.cpp

#define STRICT
#include <windows.h>
#include <tchar.h>
#include <assert.h>

//封装2个[in]参数,后面用起来比较方便
const TCHAR szOperation[] = _T("open");
const TCHAR szAddress[]   = _T("http://shanzy.cnblogs.com/");

//32位下面,第2个句柄始终为0,所以不传,但是参数原型还是要严格遵守的
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmd, int nShow)
      
{
 HINSTANCE hRslt = ShellExecute(NULL, szOperation,szAddress,
  NULL, NULL, SW_SHOWNORMAL);
 
 assert( hRslt > (HINSTANCE) HINSTANCE_ERROR);
 
 return 0;
}

对返回类型(值)进行assert()是非常重要的,能够及时发现错误

posted @ 2006-03-02 09:57 -> 阅读(...) 评论(...) 编辑 收藏