00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "precomp.h"
00028 #include <tchar.h>
00029 #include "Helpers.h"
00030
00034 bool CanOpenPDFFiles()
00035 {
00036
00037 HKEY hKey;
00038 TCHAR cData[1024];
00039 DWORD dwLen;
00040
00041 if (RegOpenKeyEx(HKEY_CLASSES_ROOT, _T(".pdf"), 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
00042 return false;
00043
00044
00045 dwLen = 1024;
00046 if (RegQueryValueEx(hKey, NULL, NULL, NULL, (LPBYTE)cData, &dwLen) != ERROR_SUCCESS)
00047 {
00048 RegCloseKey(hKey);
00049 return false;
00050 }
00051 RegCloseKey(hKey);
00052
00053 if (_tcslen(cData) == 0)
00054
00055 return false;
00056
00057
00058 if (RegOpenKeyEx(HKEY_CLASSES_ROOT, cData, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
00059 return false;
00060
00061
00062 HKEY hInnerKey;
00063 if (RegOpenKeyEx(hKey, _T("CurVer"), 0, KEY_QUERY_VALUE, &hInnerKey) == ERROR_SUCCESS)
00064 {
00065
00066 dwLen = 1024;
00067 if (RegQueryValueEx(hInnerKey, NULL, NULL, NULL, (LPBYTE)cData, &dwLen) != ERROR_SUCCESS)
00068 {
00069 RegCloseKey(hInnerKey);
00070 RegCloseKey(hKey);
00071 return false;
00072 }
00073 RegCloseKey(hInnerKey);
00074 RegCloseKey(hKey);
00075 if (RegOpenKeyEx(HKEY_CLASSES_ROOT, cData, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
00076
00077 return false;
00078 }
00079
00080
00081 bool bRet = RegOpenKeyEx(hKey, _T("shell\\open"), 0, KEY_QUERY_VALUE, &hInnerKey) == ERROR_SUCCESS;
00082 if (bRet)
00083 RegCloseKey(hInnerKey);
00084 RegCloseKey(hKey);
00085 return bRet;
00086 }