Я бы порекомендовал взглянуть на библиотеку JNA (Java Native Access). Эта библиотека позволит вам вызывать любой Win32 .DLL API из чистой Java, без написания кода JNI (C / C ++). Он используется сотнями проектов и работает как рекламируется. Я бы использовал его, чтобы обернуть дюжину или около того API, которые вам понадобятся для управления кешем, историей и т. Д. Если вы ищете Google для JNA и Win32, вы, вероятно, найдете множество примеров.