VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/VBoxCredProv/VBoxCredentialProvider.h@ 57047

Last change on this file since 57047 was 46183, checked in by vboxsync, 12 years ago

VBoxCredProv: intsafe.h _must_ be included before any vbox includes or you'll get a ton of warnings. Fixed a couple of warnings and adding a overflow check to RTUTF16ToUnicode and noting that the fCopy=true case (which isn't used currently) cannot be correctly implemented.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.1 KB
Line 
1/* $Id: VBoxCredentialProvider.h 46183 2013-05-21 00:26:23Z vboxsync $ */
2/** @file
3 * VBoxCredentialProvider - Main file of the VirtualBox Credential Provider.
4 */
5
6/*
7 * Copyright (C) 2012 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18#ifndef ___VBOX_CREDENTIALPROVIDER_H___
19#define ___VBOX_CREDENTIALPROVIDER_H___
20
21#include <Windows.h>
22#include <credentialprovider.h>
23
24#include "VBoxCredProvUtils.h"
25
26/** The VirtualBox credential provider class ID -- must not be changed. */
27DEFINE_GUID(CLSID_VBoxCredProvider, 0x275d3bcc, 0x22bb, 0x4948, 0xa7, 0xf6, 0x3a, 0x30, 0x54, 0xeb, 0xa9, 0x2b);
28
29/**
30 * The credential provider's UI field IDs, used for
31 * handling / identifying them.
32 */
33enum VBOXCREDPROV_FIELDID
34{
35 VBOXCREDPROV_FIELDID_TILEIMAGE = 0,
36 VBOXCREDPROV_FIELDID_USERNAME = 1,
37 VBOXCREDPROV_FIELDID_PASSWORD = 2,
38 VBOXCREDPROV_FIELDID_DOMAINNAME = 3,
39 VBOXCREDPROV_FIELDID_SUBMIT_BUTTON = 4
40};
41
42/* Note: If new fields are added to VBOXCREDPROV_FIELDID and s_VBoxCredProvFields,
43 don't forget to increase this define! */
44#define VBOXCREDPROV_NUM_FIELDS 5
45
46struct VBOXCREDPROV_FIELD
47{
48 /** The actual description of this field: It's label,
49 * official field type ID, ... */
50 CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR desc;
51 /** The field's display state within the. */
52 CREDENTIAL_PROVIDER_FIELD_STATE state;
53 /** The interactive state: Used when this field gets shown to determine
54 * its state -- currently, only focussing is implemented. */
55 CREDENTIAL_PROVIDER_FIELD_INTERACTIVE_STATE stateInteractive;
56};
57
58#ifndef PCREDENTIAL_PROVIDER_FIELD_DESCRIPTOR
59 #define PCREDENTIAL_PROVIDER_FIELD_DESCRIPTOR CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR*
60#endif
61
62static const VBOXCREDPROV_FIELD s_VBoxCredProvFields[] =
63{
64 /** The user's profile image. */
65 { { VBOXCREDPROV_FIELDID_TILEIMAGE, CPFT_TILE_IMAGE, L"Image" }, CPFS_DISPLAY_IN_BOTH, CPFIS_NONE },
66 { { VBOXCREDPROV_FIELDID_USERNAME, CPFT_LARGE_TEXT, L"Username" }, CPFS_DISPLAY_IN_BOTH, CPFIS_NONE },
67 { { VBOXCREDPROV_FIELDID_PASSWORD, CPFT_PASSWORD_TEXT, L"Password" }, CPFS_DISPLAY_IN_SELECTED_TILE, CPFIS_FOCUSED },
68 { { VBOXCREDPROV_FIELDID_SUBMIT_BUTTON, CPFT_SUBMIT_BUTTON, L"Submit" }, CPFS_DISPLAY_IN_SELECTED_TILE, CPFIS_NONE },
69 { { VBOXCREDPROV_FIELDID_DOMAINNAME, CPFT_LARGE_TEXT, L"Domain Name" }, CPFS_DISPLAY_IN_SELECTED_TILE, CPFIS_FOCUSED }
70};
71
72/** Prototypes. */
73void VBoxCredentialProviderAcquire(void);
74void VBoxCredentialProviderRelease(void);
75LONG VBoxCredentialProviderRefCount(void);
76
77HRESULT VBoxCredentialProviderCreate(REFCLSID classID,
78 REFIID interfaceID, void **ppvInterface);
79
80#endif /* !___VBOX_CREDENTIALPROVIDER_H___ */
81
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette