Package org.sf.feeling.swt.win32.internal.extension

Source Code of org.sf.feeling.swt.win32.internal.extension.Extension

/*******************************************************************************
* Copyright (c) 2007 cnfree.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*  cnfree  - initial API and implementation
*******************************************************************************/
package org.sf.feeling.swt.win32.internal.extension;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.eclipse.swt.internal.gdip.RectF;
import org.eclipse.swt.internal.win32.OS;
import org.eclipse.swt.internal.win32.TCHAR;
import org.sf.feeling.swt.win32.extension.registry.KeyIterator;
import org.sf.feeling.swt.win32.extension.registry.RegistryKey;
import org.sf.feeling.swt.win32.extension.registry.RegistryValue;
import org.sf.feeling.swt.win32.extension.registry.ValueIterator;

public class Extension extends OS {

  private static boolean initial = false;

  public static boolean isInitial() {
    return initial;
  }

  public static void loadLibrary() {
    if (!initial) {
      System.loadLibrary("swt-extension-win32");
      initial = true;
    }
  }

  static {
    try {
      System.loadLibrary("swt-extension-win32");
    } catch (Throwable e) {
      try {
        File file  = new File(Extension.class.getResource("/").toURI());
        file  = new File(file, "swt-extension-win32.dll");
        if(!file.exists() || file.length() < 10) {
          InputStream is = Extension.class.getResourceAsStream("/swt-extension-win32.dll");
          FileOutputStream os = new FileOutputStream(file);
          try {
            byte [] buffer = new byte [4096];
            int read;
            while ((read = is.read (buffer)) != -1) {
              os.write(buffer, 0, read);
            }
           
          } catch (Exception e3) {
            e3.printStackTrace();
          } finally {
            os.close ();
            is.close ();
          }
        }
        System.load(file.getAbsolutePath());
      } catch (Throwable e2) {
//        e.printStackTrace();
//        e2.printStackTrace();
      }
    }
    //swt-3.5.0.jar
//    System.loadLibrary("swt-extension-win32");
    initial = true;
  }

  public static final native void GetDiskFreeSpace(String drive, DISKFREESPACE diskFreeSpace);

  public static final DISKFREESPACE GetDiskFreeSpace(String drive)
  {
    DISKFREESPACE diskFreeSpace = new DISKFREESPACE();
    GetDiskFreeSpace(drive, diskFreeSpace);
    return diskFreeSpace;
  }

  public static final native void GetSystemInfo(SYSTEMINFO systemInfo);

  public static final SYSTEMINFO GetSystemInfo()
  {
    SYSTEMINFO system_info = new SYSTEMINFO();
    GetSystemInfo(system_info);
    return system_info;
  }

  public static final native void GlobalMemoryStatus(MEMORYSTATUS memoryStatus);

  public static final MEMORYSTATUS GlobalMemoryStatus()
  {
    MEMORYSTATUS memorystatus = new MEMORYSTATUS();
    GlobalMemoryStatus(memorystatus);
    return memorystatus;
  }

  public static final native int GetDriveType(String drive);

  public static final native String[] GetLogicalDrives();

  public static final native String GetVolumeSerialNumber(String drive);

  public static final native String GetVolumeLabel(String drive);

  public static final native boolean SetVolumeLabel(String drive, String label);

  public static final native String GetCurrentDirectory();

  public static final native boolean SetCurrentDirectory(String directory);

  public static final native boolean RegistryKeyIteratorHasNext(KeyIterator iterator);

  public static final native void DeleteRegistryKey(RegistryKey key);

  public static final native boolean RegistryKeyHasSubKeys(RegistryKey key);

  public static final native boolean RegistryKeyHasValue(RegistryKey key, String name);

  public static final native String RegistryKeyValueIteratorGetNext(ValueIterator iterator);

  public static final native boolean RegistryKeyHasValues(RegistryKey key);

  public static final native RegistryValue RegistryKeyGetValue(RegistryKey key, String name);

  public static final native void RegistryKeySetValue(RegistryKey key, RegistryValue value);

  public static final native void RegistryKeyDeleteValue(RegistryKey key, String name);

  public static final native String RegistryKeyIteratorGetNext(KeyIterator iterator);

  public static final native boolean ExistsRegistryKey(RegistryKey key);

  public static final native boolean RegistryKeyValueIteratorHasNext(ValueIterator iterator);

  public static final native void CreateRegistryKey(RegistryKey key);

  public static final native String GetShortCutTarget(String linkFile);

  public static final native String GetShortCutArguments(String linkFile);

  public static final native int CreateShortCut(String sourceFile, String linkFile,
      String linkDescriptor);

  public static final native int SHFileOperationA(SHFILEOPSTRUCT shFileOpStruct);

  public static final native int SHFileOperationW(SHFILEOPSTRUCT shFileOpStruct);

  public static final native boolean FlashWindow(int hwnd, boolean bInvert);

  public static final native String GetSystemDirectory();

  public static final native String GetWindowsDirectory();

  public static final native String GetTempPath();

  public static final native String GetLongPathName(String shortPathName);

  public static final native boolean SetWallPaper(char[] picturePath, int style);

  public static boolean SetWallPaper(String picturePath, int style)
  {
    return SetWallPaper(picturePath.toCharArray(), style);
  }

  public static final native int SHGetSpecialFolderLocation(int folderId);

  public static final native String SHGetPathFromIDList(int pid);

  public static final native int SHGetFileInfoW(int pszPath, int dwFileAttributes,
      SHFILEINFOW psfi, int cbFileInfo, int uFlags);

  public static final native int SHGetFileInfoA(int pszPath, int dwFileAttributes,
      SHFILEINFOA psfi, int cbFileInfo, int uFlags);

  public static int SHGetFileInfo(int pszPath, int dwFileAttributes, SHFILEINFO psfi,
      int cbFileInfo, int uFlags)
  {
    if (IsUnicode)
    {
      return SHGetFileInfoW(pszPath, dwFileAttributes, (SHFILEINFOW) psfi, cbFileInfo,
          uFlags);
    }
    return SHGetFileInfoA(pszPath, dwFileAttributes, (SHFILEINFOA) psfi, cbFileInfo,
        uFlags);
  }

  public static final native String GetCPUID();

  public static final native int[] GetMACID();

  public static final native int[] GetMACAddress(int MACID);

  public static final native int GetCpuUsages();

  public static final native int Ping(String host, int dateSize);

  public static final native boolean Reboot(boolean force);

  public static final native boolean Shutdown(boolean force);

  public static final native boolean Logoff(boolean force);

  public static final native boolean LockWorkstation();

  public static final native boolean SuspendWorkstation(boolean suspend, boolean force);

  public static boolean SuspendWorkstation(boolean force)
  {
    return SuspendWorkstation(true, force);
  }

  public static boolean HibernateWorkstation(boolean force)
  {
    return SuspendWorkstation(false, force);
  }

  public static final native boolean InitiateShutdownA(byte[] info, int time, boolean force,
      boolean reboot);

  public static final native boolean InitiateShutdownW(char[] info, int time, boolean force,
      boolean reboot);

  public static boolean InitiateShutdown(String info, int time, boolean force, boolean reboot)
  {
    TCHAR lpszInfo = new TCHAR(0, info, true);
    if (IsUnicode)
    {
      return InitiateShutdownW(lpszInfo.chars, time, force, reboot);
    }
    else
      return InitiateShutdownA(lpszInfo.bytes, time, force, reboot);
  }

  public static boolean InitiateShutdown(String info, int time, boolean force)
  {
    return InitiateShutdown(info, time, force, false);
  }

  public static boolean InitiateReboot(String info, int time, boolean force)
  {
    return InitiateShutdown(info, time, force, true);
  }

  public static final native int ExtractAssociatedIconA(int hint, byte[] info, int index);

  public static final native int ExtractAssociatedIconW(int hint, char[] info, int index);

  public static int ExtractAssociatedIcon(int hint, String iconPath, int index)
  {
    TCHAR lpszInfo = new TCHAR(0, iconPath, true);
    if (IsUnicode)
    {
      return ExtractAssociatedIconW(hint, lpszInfo.chars, index);
    }
    else
      return ExtractAssociatedIconA(hint, lpszInfo.bytes, index);
  }

  public static final native boolean FlashWindowEx(FLASHWINFO lpFlashWInfo);

  public static final native String SHGetSpecialFolderPath(int hwnd, int csidl,
      boolean create);

  public static final native int SHAppBarMessage(int dwMessage, APPBARDATA pData);

  public static final native String GetComputerName();

  public static final native boolean SetComputerName(String name);

  public static final native String GetUserName();

  public static final native int CreateEvent(boolean manualReset, boolean initialState,
      String name);

  public static final native int ResetEvent(int eventHandle);

  public static final native int SetEvent(int eventHandle);

  public static final native int WaitForSingleObject(int handle, int timeout);

  public static final native int InstallSystemHook(int hookType, int threadId);

  public static final native int UnInstallSystemHook(int hookType);

  public static final native Object ReadHookData(int value);

  public static final native boolean CreateStructByPoint(int point, Object struct);

  public static final native boolean SaveStructToPoint(Object struct, int point);

  public static final native int GetClassLongA(int hwnd, int nIndex);

  public static final native int GetClassLongW(int hwnd, int nIndex);

  public static final int GetClassLong(int /* long */hWnd, int nIndex)
  {
    if (IsUnicode) return GetClassLongW(hWnd, nIndex);
    return GetClassLongA(hWnd, nIndex);
  }

  public static final native int SetClassLongW(int /* long */hWnd, int nIndex, int dwNewLong);

  public static final native int SetClassLongA(int /* long */hWnd, int nIndex, int dwNewLong);

  public static final int SetClassLong(int /* long */hWnd, int nIndex, int dwNewLong)
  {
    if (IsUnicode) return SetClassLongW(hWnd, nIndex, dwNewLong);
    return SetClassLongA(hWnd, nIndex, dwNewLong);
  }

  public static final native int InvokeIGGI_I(int arg0, String arg1, String arg2, int arg3,
      int func) throws Exception;

  public static final native int InvokeIG_I(int arg0, String arg1, int peer)
      throws Exception;

  public static final native int InvokeIIII_I(int arg0, int arg1, int arg2, int arg3,
      int func) throws Exception;

  public static final native int InvokeII_I(int arg0, int arg1, int func) throws Exception;

  public static final native int InvokeIII_I(int arg0, int arg1, int arg2, int func)
      throws Exception;

  public static final native int InvokeI_I(int arg0, int func) throws Exception;

  public static final native int Invoke_I(int func) throws Exception;

  public static final native int InvokeG_I(String arg0, int peer) throws Exception;

  public static final native int InvokeGG_I(String arg0, String arg1, int peer)
      throws Exception;

  public static native int InvokeP_I(byte[] arg0, int func) throws Exception;

  public static final native int InvokeIIIIO(int arg0, int arg1, int arg2, int arg3, int func)
      throws Exception;

  public static final native int InvokeIO(int arg0, int peer) throws Exception;

  public static final native int InvokeIGO(int arg0, String arg1, int peer) throws Exception;

  public static final native byte[] InvokeI_S(int arg0, int returnSize, int func)
      throws Exception;

  public static final native byte[] InvokeP_S(byte[] arg0, int returnSize, int func)
      throws Exception;

  public static final native byte[] InvokePI_S(byte[] arg0, int arg1, int returnSize,
      int func) throws Exception;

  public static final int /* long */LoadLibrary(String libFileName)
  {
    TCHAR lpLibFileName = new TCHAR(0, libFileName, true);
    return LoadLibrary(lpLibFileName);
  }

  public static int LoadFunction(int dllHandle, String functionName)
  {
    if (dllHandle != 0)
    {
      byte[] lpProcName = new byte[functionName.length() + 1];
      for (int i = 0; i < functionName.length(); i++)
      {
        lpProcName[i] = (byte) functionName.charAt(i);
      }
      lpProcName[functionName.length()] = '\0';
      return GetProcAddress(dllHandle, lpProcName);
    }
    return 0;
  }

  public static final native int SetMenuItemBitmaps(int hMenu, int nPosition, int wFlags,
      int hBitmapUnchecked, int hBitmapChecked);

  public static final native void Mouse_Event(int dwFlags, int dx, int dy, int dwData,
      int dwExtraInfo);

  public static final native void Keyboard_Event(byte bVk, byte bScan, int dwFlags,
      int dwExtraInfo);

  public static int MciSendCommand(int arg0, int arg1, int arg2, Object arg3)
  {
    if (IsUnicode)
    {
      return MciSendCommandW(arg0, arg1, arg2, arg3);
    }
    return MciSendCommandA(arg0, arg1, arg2, arg3);
  }

  public static final native int MciSendCommandA(int arg0, int arg1, int arg2, Object arg3);

  public static final native int MciSendCommandW(int arg0, int arg1, int arg2, Object arg3);

  public static final native int[] GetFileVersionInfo(String filePath);

  public static final native String GetFileVersionInfoValue(int handle, String keyName);

  public static final native void FileVersionInfo_delete(int handle);

  public static final native int GraphicsPath_AddEllipse(int path, RectF rect);

  public static final native int MixerGetNumDevs();

  public static final native int MixerOpen(MIXERHANDLE mixer, int deviceId, int dwCallback,
      int dwInstance, int dwFlags);

  public static final native int MixerClose(int hMixer);

  public static final native int MixerGetDevCapsA(int deviceId, MIXERCAPSA mixerCaps);

  public static final native int MixerGetDevCapsW(int deviceId, MIXERCAPSW mixerCaps);

  public static final native int MixerGetLineInfoA(int deviceId, MIXERLINEA mixerCaps,
      int dwComponentType);

  public static final native int MixerGetLineInfoW(int deviceId, MIXERLINEW mixerCaps,
      int dwComponentType);

  public static final native boolean GetPlaybackVolume(int deviceId, int dwSrcType,
      MIXERVOLUME volume, boolean bMono);

  public static final native boolean SetPlaybackVolume(int deviceId, int dwSrcType,
      MIXERVOLUME volume, boolean bMono);

  public static final native boolean GetRecordingVolume(int deviceId, int dwSrcType,
      MIXERVOLUME volume, boolean bMono);

  public static final native boolean SetRecordingVolume(int deviceId, int dwSrcType,
      MIXERVOLUME volume, boolean bMono);

  public static final native boolean SetMixerMute(int deviceId, int dwDstType,
      int dwSrcType, boolean value);

  public static final native boolean IsMixerMute(int deviceId, int dwDstType, int dwSrcType);

  public static final native boolean IsMixerMasterMute(int deviceId);

  public static final native boolean SetMixerMasterMute(int deviceId, boolean value);

}
TOP

Related Classes of org.sf.feeling.swt.win32.internal.extension.Extension

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.