//package com.scsslint.utils;
//
//import com.sun.jna.Library;
//import com.sun.jna.Native;
//import com.sun.jna.NativeMapped;
//import com.sun.jna.PointerType;
//import com.sun.jna.win32.W32APIFunctionMapper;
//import com.sun.jna.win32.W32APITypeMapper;
//
//import java.util.HashMap;
//import java.util.Map;
//
//public class PrintAppDataDir {
//
// public static void main(String[] args) {
// if (com.sun.jna.Platform.isWindows()) {
// HWND hwndOwner = null;
// int nFolder = Shell32.CSIDL_LOCAL_APPDATA;
// HANDLE hToken = null;
// int dwFlags = Shell32.SHGFP_TYPE_CURRENT;
// char[] pszPath = new char[Shell32.MAX_PATH];
// int hResult = Shell32.INSTANCE.SHGetFolderPath(hwndOwner, nFolder, hToken, dwFlags, pszPath);
// if (Shell32.S_OK == hResult) {
// String path = new String(pszPath);
// int len = path.indexOf('\0');
// path = path.substring(0, len);
// System.out.println(path);
// } else {
// System.err.println("Error: " + hResult);
// }
// }
// }
//
// private static Map<String, Object> OPTIONS = new HashMap<String, Object>();
//
// static {
// OPTIONS.put(Library.OPTION_TYPE_MAPPER, W32APITypeMapper.UNICODE);
// OPTIONS.put(Library.OPTION_FUNCTION_MAPPER,
// W32APIFunctionMapper.UNICODE);
// }
//
// static class HANDLE extends PointerType implements NativeMapped {
// }
//
// static class HWND extends HANDLE {
// }
//
// static interface Shell32 extends Library {
//
// public static final int MAX_PATH = 260;
// public static final int CSIDL_LOCAL_APPDATA = 0x001c;
// public static final int SHGFP_TYPE_CURRENT = 0;
// public static final int SHGFP_TYPE_DEFAULT = 1;
// public static final int S_OK = 0;
//
// static Shell32 INSTANCE = (Shell32) Native.loadLibrary("shell32", Shell32.class, OPTIONS);
//
// /**
// * see http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
// * <p/>
// * HRESULT SHGetFolderPath( HWND hwndOwner, int nFolder, HANDLE hToken,
// * DWORD dwFlags, LPTSTR pszPath);
// */
// public int SHGetFolderPath(HWND hwndOwner, int nFolder, HANDLE hToken, int dwFlags, char[] pszPath);
// }
//}