リビジョン | 5818 (tree) |
---|---|
日時 | 2015-03-07 22:16:37 |
作者 | (del#24082) |
チケット #34943 設定フォルダを開く
VS2005 でもビルドできるようにした。
@@ -4582,6 +4582,13 @@ | ||
4582 | 4582 | // |
4583 | 4583 | static BOOL openVirtualStore(char *path, char *filename) |
4584 | 4584 | { |
4585 | +#if _MSC_VER == 1400 | |
4586 | + typedef struct _TOKEN_ELEVATION { | |
4587 | + DWORD TokenIsElevated; | |
4588 | + } TOKEN_ELEVATION, *PTOKEN_ELEVATION; | |
4589 | + int TokenElevation = 20; | |
4590 | +#endif | |
4591 | + | |
4585 | 4592 | BOOL ret = FALSE; |
4586 | 4593 | int flag = 0; |
4587 | 4594 | char *s, **p; |
@@ -4642,7 +4649,7 @@ | ||
4642 | 4649 | // UACが有効時、プロセスが管理者権限に昇格しているか。 |
4643 | 4650 | flag = 0; |
4644 | 4651 | if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_DEFAULT, &hToken)) { |
4645 | - if (GetTokenInformation(hToken, TokenElevation, &tokenElevation, sizeof(TOKEN_ELEVATION), &dwLength)) { | |
4652 | + if (GetTokenInformation(hToken, (TOKEN_INFORMATION_CLASS)TokenElevation, &tokenElevation, sizeof(TOKEN_ELEVATION), &dwLength)) { | |
4646 | 4653 | // (0は昇格していない、非0は昇格している)。 |
4647 | 4654 | if (tokenElevation.TokenIsElevated == 0) { |
4648 | 4655 | // 管理者権限を持っていなければ、Virtual Storeが働く。 |