亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? javaandactivex.txt

?? Java調用ActiveX控件的例子
?? TXT
字號:
成功了 高興中
先謝謝上面各位了
小嵩我用的是jni調用的c++作的嵌入了一個瀏覽器:)
把代碼發上來大家分享
------------------------------------------------------
//MyWindow.java
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.peer.*;
import sun.awt.*;

public class MyWindow extends Canvas
{
    static 
    {
        // Load the library that contains the JNI code.
        System.loadLibrary("MyWindow");
    }

    // native entry point for initializing the IE control.
    public native static void initialize(int hwnd, String strURL);

    // native entry point for resizing
    public native static void resizeControl(int hwnd, int nWidth, int nHeight);
    
    public native static int getNativeWindowHandle(Canvas canvas);
    
    public void addNotify()
    {
        super.addNotify();
        m_hWnd = getNativeWindowHandle(this);
        initialize(m_hWnd, m_strURL);
    }

    String m_strURL = "http://www.163.com";
    int    m_hWnd   = 0;

    public static void main( String[] argv )
    {
        Frame f = new Frame();
        f.setLayout(new BorderLayout());
        f.setTitle("Internet Explorer inside Java Canvas");
        
        MyWindow w = new MyWindow();
        if(argv.length>0)
            w.m_strURL = argv[0];

        String strText = "URL:" + w.m_strURL;
        f.add(w,BorderLayout.CENTER);
        f.add(new Label(strText),BorderLayout.NORTH);
        f.setBounds(300,300,500,300);
        f.setVisible(true);
    }

    public void setSize( int width, int height ) 
    {
        super.setSize(width,height);
        if(m_hWnd!=0)
            resizeControl(m_hWnd, width, height);
    }

    public void setSize( Dimension d ) 
    {
        super.setSize(d);
        if(m_hWnd!=0)
            resizeControl(m_hWnd, d.width, d.height);
    }

    public void setBounds( int x, int y, int width, int height ) 
    {
        super.setBounds(x,y,width,height);
        if(m_hWnd!=0)
            resizeControl(m_hWnd, width, height);
    }

    public void setBounds( Rectangle r ) 
    {
        super.setBounds(r);
        if(m_hWnd!=0)
            resizeControl(m_hWnd, r.width, r.height);
    }
}
--------------------------------------------------------------

將上面的文件編譯得到MyWindow.class
再用javah MyWindow命令得到MyWindow.h頭文件(是給c++用的)
剩下的事交給vc了
小嵩的vc是vc6.0中文版
建立一個dll的工程
文件-〉新建-〉Win32 Dynamic-Link Libiary
命名為MyWindow
建立一個.cpp文件 MyWindow.cpp
----------------------------------------------------------
//MyWindow.cpp
#include <jni.h>
#include <jawt.h>
#include <afxwin.h>
#include <windows.h>
#include "MyWindow.h"
#include "jawt_md.h"
//#include <assert.h>
#include <process.h>

// Includes for ATL
#pragma comment(lib,"atl.lib")
#include <atldef.h>
#define _ATL_DLL_IMPL
#include <atliface.h>
#include <atlbase.h>
#include <exdisp.h>

// Structure for Thread Parameters.
typedef struct {
    char szURL[1024];
    HWND hwnd;
} ThreadParam;

// Helper functions.
VOID CreateIEControl(ThreadParam *);
static void WINAPIV StartATL(LPVOID);


JNIEXPORT jint JNICALL Java_MyWindow_getNativeWindowHandle
  (JNIEnv *env, jobject jobj, jobject window)
{

JAWT awt;
awt.version = JAWT_VERSION_1_3;
jboolean result = JAWT_GetAWT(env, &awt);

if (result == JNI_FALSE)
return 0;

JAWT_DrawingSurface* ds = awt.GetDrawingSurface(env, window);

if (ds == 0)
return 0;

jint lock = ds->Lock(ds);

if ((lock & JAWT_LOCK_ERROR) != 0)
return 0;

JAWT_DrawingSurfaceInfo* dsi = ds->GetDrawingSurfaceInfo(ds);

if (dsi == 0)
return 0;

JAWT_Win32DrawingSurfaceInfo* dsiwin = (JAWT_Win32DrawingSurfaceInfo*) dsi->platformInfo;

jint ret = reinterpret_cast<jint>(dsiwin->hwnd);

ds->FreeDrawingSurfaceInfo(dsi);
ds->Unlock(ds);
awt.FreeDrawingSurface(ds);

return ret; 
}



// native method for initializing the control.
JNIEXPORT void JNICALL Java_MyWindow_initialize
  (JNIEnv *pEnv, jobject, jint hwndIn, jstring string)
{
    // Fill up the params.
    const char *str    = pEnv->GetStringUTFChars(string, 0);
    ThreadParam *pThreadParam = new ThreadParam;
    pThreadParam->hwnd = (HWND) hwndIn;
    strcpy(pThreadParam->szURL,str);
    pEnv->ReleaseStringUTFChars(string, str);

    // Launch the Thread.
    _beginthread(StartATL, 0, pThreadParam);
}

// Thread for creating the control 
void WINAPIV StartATL(LPVOID lpVoid)
{
    ThreadParam *pThreadParam = (ThreadParam *)lpVoid;
    CreateIEControl(pThreadParam);
    delete pThreadParam;
    MSG msg;
    // Windows message loop.
    while(GetMessage(&msg, NULL, NULL, NULL))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

// Creates IE control
VOID CreateIEControl(ThreadParam *pThreadParam)
{
    AtlAxWinInit();
    printf("Create AtlAxWin Begin...[0x%x][%s]\n",pThreadParam->hwnd,pThreadParam->szURL);
    // In the 2nd Param you can use ProgID or UUID of any activex control.
    HWND hwndChild = ::CreateWindow("AtlAxWin",
                                    "http://www.microsoft.com", 
                                    WS_CHILD|WS_VISIBLE,
                                    0,0,0,0,
                                    pThreadParam->hwnd,NULL,
                                    ::GetModuleHandle(NULL),
                                    NULL);

    IUnknown *pUnk = NULL;
    AtlAxGetControl(hwndChild,&pUnk);
    printf("Create AtlAxWin Done...[0x%x]\n",pUnk);

    // get an interface to set the URL.
    CComPtr<IWebBrowser2> spBrowser;
    pUnk->QueryInterface(IID_IWebBrowser2, (void**)&spBrowser);
    if (spBrowser)
    {
        CComVariant ve;
        CComVariant vurl(pThreadParam->szURL);
#pragma warning(disable: 4310) // cast truncates constant value
        spBrowser->put_Visible(VARIANT_TRUE);
#pragma warning(default: 4310) // cast truncates constant value
        spBrowser->Navigate2(&vurl, &ve, &ve, &ve, &ve);
    }
}

// native method for handling resizes.
JNIEXPORT void JNICALL Java_MyWindow_resizeControl
  (JNIEnv *, jobject, jint hwndIn, jint width, jint height)
{
    HWND hwnd = (HWND) hwndIn;
    RECT rc;
    if(hwnd!=NULL)
    {
        ::GetWindowRect(hwnd,&rc);
        HWND hwndChild = GetWindow(hwnd, GW_CHILD);
        printf("got resize (0x%x,%d,%d)\n",hwndChild,width,height);
        ::SetWindowPos(hwndChild,NULL,0,0,rc.right-rc.left,rc.bottom-rc.top,SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW|SWP_NOMOVE);
    }
}
----------------------------------------------------------
在編譯之前有幾件事情得先做一下
1.把剛才得到的MyWindow.h文件復制到工程中
2.把C:\Program Files\Java\j2sdk1.5.0\include和
  C:\Program Files\Java\j2sdk1.5.0\include\win32下的文件復制到
  C:\Program Files\Microsoft Visual Studio\VC98\Include下面
3.把C:\Program Files\Java\j2sdk1.5.0\lib下的jawt.lib復制到
  C:\Program Files\Microsoft Visual Studio\VC98\Lib下
  并在工程-〉設置-〉Link中添加jawt.lib
一切準備就緒按F7進行編譯,于是在Debug中得到MyWindow.dll文件
將它復制到你編寫的java 應用程序的文件夾中
好了運行MyWindow.class看看結果吧 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品国产一区二区4080| 成人毛片视频在线观看| 久久久久久97三级| 色欧美片视频在线观看| 狠狠色狠狠色综合系列| 一级做a爱片久久| 国产欧美综合在线观看第十页 | 成人性生交大片| 丝袜美腿高跟呻吟高潮一区| 国产精品视频在线看| 精品蜜桃在线看| 欧美日产国产精品| 91色在线porny| 岛国av在线一区| 7777女厕盗摄久久久| 色哟哟国产精品| 成人免费视频视频在线观看免费| 六月婷婷色综合| 亚洲chinese男男1069| 一区二区不卡在线播放 | 亚洲一区精品在线| 中文字幕欧美一| 中文字幕国产一区| 国产视频一区二区三区在线观看 | 久久久久久亚洲综合影院红桃| 欧美日韩精品综合在线| 色94色欧美sute亚洲线路一ni| 成人黄色国产精品网站大全在线免费观看 | 亚洲自拍都市欧美小说| 国产精品不卡在线| 国产精品久久久99| 国产精品久久久久永久免费观看| 久久精品在这里| 久久久亚洲综合| 国产日韩欧美激情| 国产午夜精品久久久久久久| 26uuu精品一区二区| 26uuu久久综合| 国产人妖乱国产精品人妖| 欧美激情一区在线观看| 欧美国产精品一区二区三区| 欧美国产日韩精品免费观看| 久久精品免费在线观看| 国产女人水真多18毛片18精品视频 | 久久成人18免费观看| 蜜桃视频在线一区| 国内外精品视频| 国产福利精品一区| 99视频热这里只有精品免费| 99久久精品国产导航| 色婷婷香蕉在线一区二区| 日本韩国欧美在线| 欧美日韩在线免费视频| 91精品国产高清一区二区三区| 91精品欧美久久久久久动漫| 精品入口麻豆88视频| 久久久不卡影院| 一区二区中文字幕在线| 亚洲精选一二三| 亚洲亚洲精品在线观看| 麻豆成人免费电影| 国产成人精品免费在线| 91麻豆高清视频| 欧美一区二区三区视频免费| 久久综合视频网| 日韩国产一二三区| 国产成人鲁色资源国产91色综| 91性感美女视频| 在线电影院国产精品| 欧美不卡一区二区三区四区| 国产欧美综合色| 亚洲一区二区在线免费看| 麻豆精品一区二区av白丝在线| 国产毛片精品国产一区二区三区| 99免费精品视频| 在线成人高清不卡| 中文字幕的久久| 日韩影院在线观看| 成人精品一区二区三区四区| 欧美性大战久久| 久久久精品天堂| 香蕉成人伊视频在线观看| 国产精品一二三| 欧美揉bbbbb揉bbbbb| 国产欧美精品一区| 视频精品一区二区| av在线一区二区三区| 欧美一区欧美二区| 亚洲男人电影天堂| 国产精品自拍网站| 欧美日本免费一区二区三区| 国产女人aaa级久久久级| 日本sm残虐另类| 色综合久久久久综合体桃花网| 日韩欧美三级在线| 一区二区三区电影在线播| 国产综合久久久久影院| 欧美日韩综合不卡| 最新日韩在线视频| 国内成+人亚洲+欧美+综合在线| 欧美色欧美亚洲另类二区| 国产精品久久免费看| 久久福利资源站| 欧美精品丝袜久久久中文字幕| 国产精品嫩草99a| 精品一区二区综合| 欧美人伦禁忌dvd放荡欲情| 亚洲欧美在线视频| 国产成人aaa| 欧美va在线播放| 日韩影视精彩在线| 欧美无乱码久久久免费午夜一区 | 欧美三电影在线| 亚洲精选免费视频| 色哟哟在线观看一区二区三区| 国产欧美日韩另类一区| 国内外精品视频| 日韩欧美资源站| 日韩国产精品久久| 欧美一区二区三区视频免费| 香蕉成人伊视频在线观看| 日本道精品一区二区三区| 国产精品看片你懂得| 成人综合婷婷国产精品久久免费| 久久久精品人体av艺术| 久久99久久久欧美国产| 91精品国产欧美一区二区| 五月激情综合婷婷| 欧美日韩色综合| 99国产精品一区| 国产精品久久久久9999吃药| 国产v日产∨综合v精品视频| 久久久精品人体av艺术| 国产一区二区福利| 欧美激情在线免费观看| 成人黄色大片在线观看| 中文字幕在线不卡一区二区三区| 成人久久18免费网站麻豆| 国产精品乱人伦中文| www.一区二区| 亚洲色图.com| 欧美日韩另类一区| 青青草91视频| 26uuu国产日韩综合| 国产精品一区三区| 欧美国产精品v| 91看片淫黄大片一级| 一区二区三区在线免费播放| 欧美亚洲日本一区| 天天综合日日夜夜精品| 欧美大度的电影原声| 国产精品中文字幕一区二区三区| 国产视频一区二区在线| 91麻豆精东视频| 三级欧美韩日大片在线看| 精品嫩草影院久久| 成人免费看视频| 亚洲一线二线三线视频| 3d动漫精品啪啪1区2区免费| 久久爱另类一区二区小说| 国产日韩欧美高清在线| 日本乱人伦一区| 免费视频一区二区| 国产精品久久久爽爽爽麻豆色哟哟 | 精品欧美乱码久久久久久| 国产很黄免费观看久久| 亚洲色图欧洲色图婷婷| 欧美一级高清大全免费观看| 国产激情一区二区三区| 亚洲精品高清在线| 日韩三级在线观看| 成人高清视频在线| 午夜不卡av在线| 久久九九国产精品| 欧美三级在线播放| 国产成人av电影在线播放| 亚洲一区二区三区影院| 久久久久久一二三区| 在线看日韩精品电影| 国产精品一区专区| 亚洲一二三专区| 国产色产综合产在线视频| 欧美影片第一页| 成人性视频免费网站| 亚洲第一在线综合网站| 国产精品区一区二区三| 91精品一区二区三区在线观看| 国产99久久久国产精品| 肉色丝袜一区二区| 自拍av一区二区三区| 精品国产乱子伦一区| 精品视频999| 成a人片国产精品| 久久国产婷婷国产香蕉| 一区二区三区日韩欧美精品| 久久人人97超碰com| 欧美人伦禁忌dvd放荡欲情| 97久久精品人人爽人人爽蜜臀| 麻豆精品国产传媒mv男同| 亚洲午夜免费视频|