AtlAxWinInit疑问

转载 2012年03月24日 09:51:29
// WebBrowser.cpp : 定义应用程序的入口点。
//

#include "stdafx.h"
#include "WebBrowser.h"
HWND hWndWeb;
typedef HRESULT (WINAPI *pAtlAxGetControl)(HWND,void**);
pAtlAxGetControl MyAtlAxGetControl;
IWebBrowser2 *web;
BOOL CALLBACK DlgFunc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
 
 switch(message)
 {
 case WM_INITDIALOG:
 {
  IUnknown *pp;
  hWndWeb = GetDlgItem(hDlg,IDC_CUSTOM1);
  MyAtlAxGetControl(hWndWeb,(void**)&pp); // MyAtlAxGetControl是在WinMain函数中初始化函数指针的。同样不能用SDK中的 AtlAxGetControl
  pp->QueryInterface(IID_IWebBrowser2,(void **)&web);
  web->Navigate(L"http://box.zhangmen.baidu.com/m?word=mp3,,,[if]&cat=0&gate=1&ct=134217728&tn=baidumt,if++&si=if;;naby;;0;;0&lm=-1&mtid=36&d=7&size=3670016&attr=0,0&titlekey=1846109801,7955041&mtype=1",NULL,NULL,NULL,NULL);
  web->Release();
    }
 return (TRUE);
 case WM_CLOSE:
    {
  
      EndDialog(hDlg,0);
    }
 return (TRUE);
 case WM_COMMAND:
 switch (LOWORD(wParam))
 {
 case IDCANCEL:
      {
        SendMessage(hDlg, WM_CLOSE, 0, 0);
      }
      return (TRUE);
 case IDOK:
      {
        
      }
  return (TRUE);
 case IDC_BUTTON1:
  {
  WCHAR Url[MAX_PATH*2];
  GetDlgItemText(hDlg,IDC_EDIT1,Url,MAX_PATH);
  web->Navigate(Url,NULL,NULL,NULL,NULL);
  }
 }
 return (FALSE);
 }
 return (FALSE);
}
int APIENTRY WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
 HMODULE hModule =LoadLibrary(L"atl");
 DWORD dwFunc = (DWORD)GetProcAddress(hModule,"AtlAxWinInit");
 _asm
 {
 call dwFunc;
 }
 //AtlAxWinInit() 如果不使用上面那种方式,不会注册到窗口类 和 传说中的消息,导致窗口一闪即逝 
 MyAtlAxGetControl = (pAtlAxGetControl)GetProcAddress(hModule,"AtlAxGetControl");
 DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgFunc,NULL);//模态对话框,窗口关闭后程序往下执行
 return 1;
}

unresolved external symbol _AtlAxWinInit@

出现这个问题可能是由于没有保含#include #include
  • pyl2001
  • pyl2001
  • 2005年04月22日 09:45
  • 849

获取对话框中的控件指针

1. 采用GetDlgControl获取控件指针; [cpp] view plaincopy //以IE控件为例   CComPtr spIWeb...
  • sunnylion1982
  • sunnylion1982
  • 2014年03月25日 16:25
  • 828

Win32 API 封装类总结

以下是一些封装的Win32 API类;备用; 重温WIN32 API ------ 最简单的Windows窗口封装类 http://blog.csdn.net/smstong/arti...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年08月16日 10:56
  • 3557

class CWindow

///////////////////////////////////////////////////////////////////////////// // CWindow - client si...
  • wishfly
  • wishfly
  • 2013年09月04日 10:06
  • 1178

Flash GUI for Your EXE Using Minimalistic Approach

http://www.codeproject.com/KB/cpp/FlashGui.aspx Introduction Well we all know how boring gui today...
  • summerhust
  • summerhust
  • 2011年12月03日 23:23
  • 951

获取对话框中的控件指针

1. 采用GetDlgControl获取控件指针;//以IE控件为例CComPtr spIWebBrowser2;GetDlgControl(IDC_EXPLORER,IID_IWebBrowser2...
  • hqulyc
  • hqulyc
  • 2010年05月13日 11:09
  • 3985

JNI示例

JNI示例2007年05月27日 星期日 16:15 一、JNI简介JNI:Java Native Interface,是Java...
  • fidelhl
  • fidelhl
  • 2007年05月29日 10:46
  • 1185

利用JNI实现 AWT控件的本地化调用IE控件

 一个Application程序,所要做的工作,是处理数据,然后通过一些特定的界面将处理结果显示出来,所以Application可以分为两个部分:数据处理部分和界面显示处理部分。当应用程序在纯JAVA...
  • hl4967
  • hl4967
  • 2008年01月29日 16:04
  • 1212

怎样在C++工程中集成C#窗口

原文地址:http://www.codeproject.com/KB/cs/DotNetActiveX.aspx原文作者:Daniel Yanovsky翻译:朱金灿 本文介绍了怎样在C++工程集成C#...
  • clever101
  • clever101
  • 2009年12月14日 22:34
  • 4388

Embed ActiveX controls inside Java GUI

From: http://www.codeproject.com/java/javacom.aspDownload source and binary files - 6.9 Kb Introduct...
  • newweapon
  • newweapon
  • 2007年05月28日 21:27
  • 702
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AtlAxWinInit疑问
举报原因:
原因补充:

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