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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? olecontrolsite.java

?? 源碼為Eclipse開源開發(fā)平臺桌面開發(fā)工具SWT的源代碼,
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials  * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html *  * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.ole.win32;import org.eclipse.swt.*;import org.eclipse.swt.internal.ole.win32.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.widgets.*;import org.eclipse.swt.internal.win32.*;/** * OleControlSite provides a site to manage an embedded ActiveX Control within a container. * * <p>In addition to the behaviour provided by OleClientSite, this object provides the following:  * <ul> *	<li>events from the ActiveX control  * 	<li>notification of property changes from the ActiveX control *	<li>simplified access to well known properties of the ActiveX Control (e.g. font, background color) *	<li>expose ambient properties of the container to the ActiveX Control * </ul> * * <p>This object implements the OLE Interfaces IOleControlSite, IDispatch, and IPropertyNotifySink. * * <p>Note that although this class is a subclass of <code>Composite</code>, * it does not make sense to add <code>Control</code> children to it, * or set a layout on it. * </p><p> * <dl> *	<dt><b>Styles</b> <dd>BORDER  *	<dt><b>Events</b> <dd>Dispose, Move, Resize * </dl> * */public class OleControlSite extends OleClientSite{	// interfaces for this container	private COMObject iOleControlSite;	private COMObject iDispatch;		// supporting Property Change attributes	private OlePropertyChangeSink olePropertyChangeSink;		// supporting Event Sink attributes	private OleEventSink[] oleEventSink = new OleEventSink[0];	private GUID[] oleEventSinkGUID = new GUID[0];	private int[] oleEventSinkIUnknown = new int[0];			// supporting information for the Control COM object	private CONTROLINFO currentControlInfo;	private int[] sitePropertyIds = new int[0];	private Variant[] sitePropertyValues = new Variant[0];	/** * Create an OleControlSite child widget using style bits * to select a particular look or set of properties. * * @param parent a composite widget; must be an OleFrame * @param style the bitwise OR'ing of widget styles * @param progID the unique program identifier which has been registered for this ActiveX Control;  *               the value of the ProgID key or the value of the VersionIndependentProgID key specified *               in the registry for this Control (for example, the VersionIndependentProgID for  *               Internet Explorer is Shell.Explorer) * * @exception SWTError * <ul><li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread *     <li>ERROR_ERROR_NULL_ARGUMENT when the parent is null *     <li>ERROR_INVALID_CLASSID when the progId does not map to a registered CLSID *     <li>ERROR_CANNOT_CREATE_OBJECT when failed to create OLE Object *     <li>ERROR_CANNOT_ACCESS_CLASSFACTORY when Class Factory could not be found *     <li>ERROR_CANNOT_CREATE_LICENSED_OBJECT when failed to create a licensed OLE Object *     <li>ERROR_INTERFACES_NOT_INITIALIZED when unable to create callbacks for OLE Interfaces</ul> * */public OleControlSite(Composite parent, int style, String progId) {	super(parent, style);	try {			// check for licensing		appClsid = getClassID(progId);		if (appClsid == null) OLE.error(OLE.ERROR_INVALID_CLASSID);			int licinfo = getLicenseInfo(appClsid);		if (licinfo == 0) {						// Open a storage object			tempStorage = createTempStorage();				// Create ole object with storage object			int[] address = new int[1];			int result = COM.OleCreate(appClsid, COM.IIDIUnknown, COM.OLERENDER_DRAW, null, 0, tempStorage.getAddress(), address);			if (result != COM.S_OK)				OLE.error(OLE.ERROR_CANNOT_CREATE_OBJECT, result);				objIUnknown = new IUnknown(address[0]);					} else {			// Prepare the ClassFactory			int[] ppvObject = new int[1];			try {				int result = COM.CoGetClassObject(appClsid, COM.CLSCTX_INPROC_HANDLER | COM.CLSCTX_INPROC_SERVER, 0, COM.IIDIClassFactory2, ppvObject);				if (result != COM.S_OK) {					OLE.error(OLE.ERROR_CANNOT_ACCESS_CLASSFACTORY, result);				}				IClassFactory2 classFactory = new IClassFactory2(ppvObject[0]);				// Create Com Object				ppvObject = new int[1];				result = classFactory.CreateInstanceLic(0, 0, COM.IIDIUnknown, licinfo, ppvObject);				classFactory.Release();				if (result != COM.S_OK)					OLE.error(OLE.ERROR_CANNOT_CREATE_LICENSED_OBJECT, result);			} finally {				COM.SysFreeString(licinfo);			}						objIUnknown = new IUnknown(ppvObject[0]);				// Prepare a storage medium			ppvObject = new int[1];			if (objIUnknown.QueryInterface(COM.IIDIPersistStorage, ppvObject) == COM.S_OK) {				IPersistStorage persist = new IPersistStorage(ppvObject[0]);				tempStorage = createTempStorage();				persist.InitNew(tempStorage.getAddress());				persist.Release();			}		}			// Init sinks		addObjectReferences();				// Init site properties		setSiteProperty(COM.DISPID_AMBIENT_USERMODE, new Variant(true));		setSiteProperty(COM.DISPID_AMBIENT_UIDEAD, new Variant(false));					if (COM.OleRun(objIUnknown.getAddress()) == OLE.S_OK) state= STATE_RUNNING;	} catch (SWTError e) {		dispose();		disposeCOMInterfaces();		throw e;	}			}/**	  * Adds the listener to receive events. * * @param eventID the id of the event *  * @param listener the listener * * @exception SWTError  *	<ul><li>ERROR_NULL_ARGUMENT when listener is null</li></ul> */public void addEventListener(int eventID, OleListener listener) {	if (listener == null) OLE.error (SWT.ERROR_NULL_ARGUMENT);	GUID riid = getDefaultEventSinkGUID(objIUnknown);	if (riid != null) {		addEventListener(objIUnknown.getAddress(), riid, eventID, listener);	}	}static GUID getDefaultEventSinkGUID(IUnknown unknown) {	// get Event Sink I/F from IProvideClassInfo2	int[] ppvObject = new int[1];	if (unknown.QueryInterface(COM.IIDIProvideClassInfo2, ppvObject) == COM.S_OK) {		IProvideClassInfo2 pci2 = new IProvideClassInfo2(ppvObject[0]);		GUID riid = new GUID();		int result = pci2.GetGUID(COM.GUIDKIND_DEFAULT_SOURCE_DISP_IID, riid);		pci2.Release();		if (result == COM.S_OK) return riid;	}	// get Event Sink I/F from IProvideClassInfo	if (unknown.QueryInterface(COM.IIDIProvideClassInfo, ppvObject) == COM.S_OK) {		IProvideClassInfo pci = new IProvideClassInfo(ppvObject[0]);		int[] ppTI = new int[1];		int[] ppEI = new int[1];		int result = pci.GetClassInfo(ppTI);		pci.Release();				if (result == COM.S_OK && ppTI[0] != 0) {					ITypeInfo classInfo = new ITypeInfo(ppTI[0]);			int[] ppTypeAttr = new int[1];			result = classInfo.GetTypeAttr(ppTypeAttr);			if (result == COM.S_OK  && ppTypeAttr[0] != 0) {				TYPEATTR typeAttribute = new TYPEATTR();				COM.MoveMemory(typeAttribute, ppTypeAttr[0], TYPEATTR.sizeof);				classInfo.ReleaseTypeAttr(ppTypeAttr[0]);				int implMask = COM.IMPLTYPEFLAG_FDEFAULT | COM.IMPLTYPEFLAG_FSOURCE | COM.IMPLTYPEFLAG_FRESTRICTED;				int implBits = COM.IMPLTYPEFLAG_FDEFAULT | COM.IMPLTYPEFLAG_FSOURCE;								for (int i = 0; i < typeAttribute.cImplTypes; i++) {					int[] pImplTypeFlags = new int[1];					if (classInfo.GetImplTypeFlags(i, pImplTypeFlags) == COM.S_OK) {						if ((pImplTypeFlags[0] & implMask) == implBits) {							int[] pRefType = new int[1];							if (classInfo.GetRefTypeOfImplType(i, pRefType) == COM.S_OK) {								classInfo.GetRefTypeInfo(pRefType[0], ppEI);							}						}					}				}			}			classInfo.Release();				if (ppEI[0] != 0) {				ITypeInfo eventInfo = new ITypeInfo(ppEI[0]);				ppTypeAttr = new int[1];				result = eventInfo.GetTypeAttr(ppTypeAttr);				GUID riid = null;				if (result == COM.S_OK && ppTypeAttr[0] != 0) {					riid = new GUID();					COM.MoveMemory(riid, ppTypeAttr[0], GUID.sizeof);					eventInfo.ReleaseTypeAttr(ppTypeAttr[0]);				}				eventInfo.Release();				return riid;			}		}	}	return null;}/**	  * Adds the listener to receive events. * * @since 2.0 *  * @param automation the automation object that provides the event notification *  * @param eventID the id of the event *  * @param listener the listener * * @exception SWTError  *	<ul><li>ERROR_NULL_ARGUMENT when listener is null</li></ul> */public void addEventListener(OleAutomation automation, int eventID, OleListener listener) {	if (listener == null || automation == null) OLE.error (SWT.ERROR_NULL_ARGUMENT);	int address = automation.getAddress();	IUnknown unknown = new IUnknown(address);	GUID riid = getDefaultEventSinkGUID(unknown);	if (riid != null) {		addEventListener(address, riid, eventID, listener);	}	}void addEventListener(int iunknown, GUID guid, int eventID, OleListener listener) {	if (listener == null || iunknown == 0 || guid == null) OLE.error (SWT.ERROR_NULL_ARGUMENT);	// have we connected to this kind of event sink before?	int index = -1;	for (int i = 0; i < oleEventSinkGUID.length; i++) {		if (COM.IsEqualGUID(oleEventSinkGUID[i], guid)) {			if (iunknown == oleEventSinkIUnknown[i]) {				index = i; 				break;			}		}	}	if (index != -1) {		oleEventSink[index].addListener(eventID, listener);	} else {		int oldLength = oleEventSink.length;		OleEventSink[] newOleEventSink = new OleEventSink[oldLength + 1];		GUID[] newOleEventSinkGUID = new GUID[oldLength + 1];		int[] newOleEventSinkIUnknown = new int[oldLength + 1];		System.arraycopy(oleEventSink, 0, newOleEventSink, 0, oldLength);		System.arraycopy(oleEventSinkGUID, 0, newOleEventSinkGUID, 0, oldLength);		System.arraycopy(oleEventSinkIUnknown, 0, newOleEventSinkIUnknown, 0, oldLength);		oleEventSink = newOleEventSink;		oleEventSinkGUID = newOleEventSinkGUID;		oleEventSinkIUnknown = newOleEventSinkIUnknown;				oleEventSink[oldLength] = new OleEventSink(this, iunknown, guid);		oleEventSinkGUID[oldLength] = guid;		oleEventSinkIUnknown[oldLength] = iunknown;		oleEventSink[oldLength].AddRef();		oleEventSink[oldLength].connect();		oleEventSink[oldLength].addListener(eventID, listener);			}}protected void addObjectReferences() {	super.addObjectReferences();		// Get property change notification from control	connectPropertyChangeSink();	// Get access to the Control object	int[] ppvObject = new int[1];	if (objIUnknown.QueryInterface(COM.IIDIOleControl, ppvObject) == COM.S_OK) {		IOleControl objIOleControl = new IOleControl(ppvObject[0]);		// ask the control for its info in case users		// need to act on it		currentControlInfo = new CONTROLINFO();		objIOleControl.GetControlInfo(currentControlInfo);		objIOleControl.Release();	}		}/**	  * Adds the listener to receive events. * * @param propertyID the identifier of the property * @param listener the listener * * @exception SWTError  *	<ul><li>ERROR_NULL_ARGUMENT when listener is null</li></ul> */public void addPropertyListener(int propertyID, OleListener listener) {	if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);	olePropertyChangeSink.addListener(propertyID, listener);	}private void connectPropertyChangeSink() {	olePropertyChangeSink = new OlePropertyChangeSink(this);	olePropertyChangeSink.AddRef();	olePropertyChangeSink.connect(objIUnknown);}protected void createCOMInterfaces () {	super.createCOMInterfaces();		// register each of the interfaces that this object implements	iOleControlSite = new COMObject(new int[]{2, 0, 0, 0, 1, 1, 3, 2, 1, 0}){		public int method0(int[] args) {return QueryInterface(args[0], args[1]);}		public int method1(int[] args) {return AddRef();}		public int method2(int[] args) {return Release();}		public int method3(int[] args) {return OnControlInfoChanged();}		// method4 LockInPlaceActive - not implemented		// method5 GetExtendedControl - not implemented		// method6 TransformCoords - not implemented		// method7 Translate Accelerator - not implemented		public int method8(int[] args) {return OnFocus(args[0]);}		// method9 ShowPropertyFrame - not implemented	};		iDispatch = new COMObject(new int[]{2, 0, 0, 1, 3, 5, 8}){		public int method0(int[] args) {return QueryInterface(args[0], args[1]);}		public int method1(int[] args) {return AddRef();}		public int method2(int[] args) {return Release();}		// method3 GetTypeInfoCount - not implemented		// method4 GetTypeInfo - not implemented		// method5 GetIDsOfNames - not implemented		public int method6(int[] args) {return Invoke(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);}	};}private void disconnectEventSinks() {	for (int i = 0; i < oleEventSink.length; i++) {		OleEventSink sink = oleEventSink[i];		sink.disconnect();		sink.Release();	}	oleEventSink = new OleEventSink[0];	oleEventSinkGUID = new GUID[0];	oleEventSinkIUnknown = new int[0];}private void disconnectPropertyChangeSink() {	if (olePropertyChangeSink != null) {		olePropertyChangeSink.disconnect(objIUnknown);		olePropertyChangeSink.Release();	}	olePropertyChangeSink = null;}protected void disposeCOMInterfaces() {	super.disposeCOMInterfaces();	if (iOleControlSite != null)		iOleControlSite.dispose();	iOleControlSite = null;	if (iDispatch != null)		iDispatch.dispose();	iDispatch = null;}public Color getBackground () {	if (objIUnknown != null) {		// !! We are getting the OLE_COLOR - should we change this to the COLORREF value?		OleAutomation oleObject= new OleAutomation(this);		Variant varBackColor = oleObject.getProperty(COM.DISPID_BACKCOLOR);		oleObject.dispose();			if (varBackColor != null){			int[] colorRef = new int[1];			if (COM.OleTranslateColor(varBackColor.getInt(), getDisplay().hPalette, colorRef) == COM.S_OK)				return Color.win32_new(getDisplay(), colorRef[0]);		}	}			return super.getBackground();}public Font getFont () {	if (objIUnknown != null) {		OleAutomation oleObject= new OleAutomation(this);		Variant varDispFont = oleObject.getProperty(COM.DISPID_FONT);		oleObject.dispose();			if (varDispFont != null){			OleAutomation iDispFont = varDispFont.getAutomation();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美系列亚洲系列| youjizz久久| 日韩精品一区国产麻豆| 美腿丝袜一区二区三区| 欧美大片在线观看一区二区| 久久精品国产999大香线蕉| 久久精品视频免费观看| 成人高清伦理免费影院在线观看| 亚洲欧洲国产专区| 欧美色视频一区| 麻豆精品国产91久久久久久 | 91网上在线视频| 亚洲影视资源网| 欧美精品777| 国产超碰在线一区| 亚洲裸体xxx| 日韩视频一区二区三区 | 亚洲国产成人porn| 欧美一区二区视频在线观看2022 | 国产精品123| 亚洲你懂的在线视频| 欧美日韩电影在线| 国产精品66部| 婷婷开心激情综合| 欧美经典一区二区三区| 久久亚洲私人国产精品va媚药| 黑人精品欧美一区二区蜜桃| 中文字幕一区二区三区乱码在线| 欧美日韩一二三| 国产精品亚洲视频| 性久久久久久久久久久久| 国产欧美精品一区aⅴ影院 | 91麻豆.com| 激情欧美日韩一区二区| 亚洲啪啪综合av一区二区三区| 日韩欧美一区电影| 成人av电影在线网| 激情都市一区二区| 亚洲国产精品久久久久秋霞影院| 欧美经典一区二区| 日韩一区二区精品| 欧美三级视频在线观看| 成人av网站在线观看| 理论片日本一区| 亚洲一区二区三区四区在线| 国产精品国模大尺度视频| 91精品久久久久久久久99蜜臂| av资源网一区| 国产激情视频一区二区在线观看 | 国产精品久久一级| 精品日韩99亚洲| 欧美日韩视频在线观看一区二区三区| 国产a级毛片一区| 九九久久精品视频| 蜜桃久久久久久久| 视频一区二区三区中文字幕| 亚洲精品久久嫩草网站秘色| 久久精品欧美日韩| 精品欧美一区二区久久| 欧美一区二区三区色| 欧美色图免费看| 欧美网站一区二区| 欧美伊人久久大香线蕉综合69| 国产成人免费在线| 国产精品一区二区在线观看不卡 | 亚洲六月丁香色婷婷综合久久 | 欧美国产日本韩| 久久久久99精品国产片| 精品电影一区二区三区| 欧美一区二区三区在线看| 欧美久久久久久久久| 欧美日韩精品系列| 欧美日韩国产中文| 欧美一区二区三区四区五区| 在线播放91灌醉迷j高跟美女| 欧美撒尿777hd撒尿| 欧美浪妇xxxx高跟鞋交| 欧美国产成人精品| 国产亚洲欧美色| 国产欧美综合在线| 国产精品久久久久桃色tv| 国产精品视频一二三区| 国产精品国产精品国产专区不蜜| 国产精品三级在线观看| 亚洲人精品午夜| 夜夜揉揉日日人人青青一国产精品| 亚洲欧美乱综合| 午夜精品久久久久影视| 免费成人小视频| 国产成人综合亚洲网站| 99国产精品99久久久久久| 日本韩国欧美国产| 51精品久久久久久久蜜臀| 欧美电影免费观看高清完整版在| 精品国产乱码久久久久久免费| 国产亚洲视频系列| 亚洲免费av网站| 亚洲成人精品在线观看| 国产在线看一区| 成人av在线播放网站| 在线免费观看日本一区| 日韩一区二区不卡| 亚洲欧洲99久久| 亚洲国产日韩av| 国产乱人伦偷精品视频免下载| www.日韩精品| 欧美一区二区啪啪| 中文字幕在线不卡一区二区三区| 亚洲午夜电影在线| 国产在线不卡一卡二卡三卡四卡| www.在线欧美| 日韩亚洲欧美成人一区| 国产精品传媒入口麻豆| 日本中文字幕一区| 不卡视频在线观看| 日韩视频免费观看高清完整版 | 欧美大胆人体bbbb| 国产精品动漫网站| 久久激情五月激情| 色偷偷久久一区二区三区| 欧美大片国产精品| 亚洲黄色av一区| 国产一区二区0| 欧美三级视频在线观看| 国产亚洲欧美日韩在线一区| 亚洲电影中文字幕在线观看| 国产精品亚洲专一区二区三区| 欧美在线视频全部完| 欧美—级在线免费片| 日本视频一区二区三区| 色天天综合久久久久综合片| 精品成人佐山爱一区二区| 亚洲第一av色| 99久久综合狠狠综合久久| 日韩精品中文字幕一区二区三区| 亚洲欧美偷拍三级| 国产不卡一区视频| 欧美大片在线观看一区二区| 亚洲一区二区在线视频| 东方欧美亚洲色图在线| 日韩精品中文字幕在线一区| 亚洲午夜激情网站| 一本一道久久a久久精品 | 日韩视频一区二区三区| 亚洲一区二区在线免费观看视频 | 日本韩国精品在线| 日本成人在线看| 欧美色图在线观看| 亚洲综合激情另类小说区| 成人av资源在线| 国产视频一区在线观看| 国产在线精品一区二区夜色 | 国产精品一区三区| 精品人在线二区三区| 免费视频最近日韩| 欧美一卡二卡三卡| 日韩精品1区2区3区| 欧美丰满嫩嫩电影| 午夜精品123| 欧美裸体bbwbbwbbw| 亚洲成年人网站在线观看| 欧美在线视频日韩| 亚洲成人激情自拍| 欧美日韩中文一区| 天天影视色香欲综合网老头| 欧美视频一区二| 日韩精品视频网站| 日韩免费性生活视频播放| 蜜臀91精品一区二区三区| 日韩欧美高清一区| 国产九色sp调教91| 中文字幕乱码久久午夜不卡| 国产91精品入口| 亚洲日本一区二区| 欧美少妇一区二区| 午夜精品久久久| 欧美一级理论片| 国产精品一区二区在线观看网站| 国产拍揄自揄精品视频麻豆| 成人一级片网址| 亚洲综合视频在线观看| 欧美猛男超大videosgay| 久久97超碰国产精品超碰| 久久午夜免费电影| 99久久精品久久久久久清纯| 亚洲激情图片qvod| 91精选在线观看| 国产毛片精品一区| 亚洲日本欧美天堂| 欧美无砖专区一中文字| 久久成人18免费观看| 国产欧美一区二区三区在线老狼| 高清不卡一二三区| 自拍偷拍国产精品| 在线观看91精品国产麻豆| 国产麻豆一精品一av一免费 | av在线这里只有精品| 亚洲精品成人悠悠色影视| 欧美一区二视频| 粉嫩av亚洲一区二区图片|