diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDesktop.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDesktop.java index 0b983fefb08..d8f8374e2c6 100644 --- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDesktop.java +++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDesktop.java @@ -14,8 +14,9 @@ import org.eclipse.tm.internal.rapi.RapiDesktop; /** * This class is used to find connected WinCE-based remote devices. - *
Use IRapiDesktop.getInstance()
to obtain an instance.
+ *
Use {@link IRapiDesktop#getInstance()} to obtain an instance.
*
+ * @noextend This class is not intended to be subclassed by clients.
* @author Radoslav Gerganov
*/
public abstract class IRapiDesktop extends IUnknown {
diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDevice.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDevice.java
index 4c5d9be0737..a7d0c670095 100644
--- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDevice.java
+++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiDevice.java
@@ -13,6 +13,7 @@ package org.eclipse.tm.rapi;
/**
* This class represents a connected WinCE-based remote device.
*
+ * @noextend This class is not intended to be subclassed by clients.
* @author Radoslav Gerganov
*/
public abstract class IRapiDevice extends IUnknown {
diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiEnumDevices.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiEnumDevices.java
index f3a33704a55..8c0292281e3 100644
--- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiEnumDevices.java
+++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiEnumDevices.java
@@ -15,6 +15,7 @@ package org.eclipse.tm.rapi;
* remote devices which are represented by IRapiDevice
* objects.
*
+ * @noextend This class is not intended to be subclassed by clients.
* @author Radoslav Gerganov
*/
public abstract class IRapiEnumDevices extends IUnknown {
diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiSession.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiSession.java
index 8268f3ec266..1c810d3e7b8 100644
--- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiSession.java
+++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IRapiSession.java
@@ -14,6 +14,7 @@ package org.eclipse.tm.rapi;
* This class is used to perform Remote API 2 operations on a connected
* WinCE-based remote device.
*
+ * @noextend This class is not intended to be subclassed by clients.
* @author Radoslav Gerganov
*/
public abstract class IRapiSession extends IUnknown {
diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IUnknown.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IUnknown.java
index c79a87f082c..6eb39791aa0 100644
--- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IUnknown.java
+++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/IUnknown.java
@@ -13,6 +13,7 @@ package org.eclipse.tm.rapi;
/**
* Java wrapper for the native IUnknown interface.
*
+ * @noextend This class is not intended to be subclassed by clients.
* @author Radoslav Gerganov
*/
public abstract class IUnknown {
diff --git a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/Rapi.java b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/Rapi.java
index e5a2b870688..0652a319c11 100644
--- a/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/Rapi.java
+++ b/wince/org.eclipse.tm.rapi/src/org/eclipse/tm/rapi/Rapi.java
@@ -14,6 +14,7 @@ package org.eclipse.tm.rapi;
* This class provides access to some native Win32 APIs and constants.
*
* @noextend This class is not intended to be subclassed by clients.
+ * @noinstantiate This class is not intended to be instantiated by clients.
* @author Radoslav Gerganov
*/
public final class Rapi {
@@ -79,6 +80,29 @@ public final class Rapi {
public static final int COINIT_DISABLE_OLE1DDE = 0x4;
public static final int COINIT_SPEED_OVER_MEMORY = 0x8;
+ /**
+ * Initializes the library, the clients must call this method before any
+ * other. The meaning of the init
parameter and the returned
+ * value is platform dependent. On Win32 platforms this method is directly
+ * mapped to CoInitializeEx
.
+ *
+ * @param init on Win32 it is either {@link Rapi#COINIT_APARTMENTTHREADED}
+ * or {@link Rapi#COINIT_MULTITHREADED}
+ * @return on Win32 this is the returned value from
+ * CoInitializeEx
+ */
+ public static final int initialize(int init) {
+ return CoInitializeEx(0, init);
+ }
+
+ /**
+ * Uninitializes the library, the clients must call this method last to free any allocated resources.
+ * This method is platform dependent, on Win32 it is directly mapped to CoUninitialize
.
+ */
+ public static final void uninitialize() {
+ CoUninitialize();
+ }
+
/**
* Initializes the COM library.
*/
@@ -89,6 +113,19 @@ public final class Rapi {
*/
public static final native void CoUninitialize();
+ /**
+ * Sets the first element of the specified array with the address of a newly
+ * instantiated IRAPIDesktop
native interface.
+ * @param pIRAPIDesktop an array with one element
+ * @return {@link Rapi#NOERROR} if the function succeeds; otherwise an error code
+ */
final static native int CreateRapiDesktop(int[] pIRAPIDesktop);
+
+
+ /**
+ * Invokes the Release
method of the IUnkonwn
object
+ * having the specified address.
+ * @param addr the address of the IUnknown
object
+ */
final static native void ReleaseIUnknown(int addr);
}