Update NEWS for 1.6.22
[pkg-k5-afs_openafs.git] / src / WINNT / netidmgr_plugin / afsnewcreds.h
blob8e203c92700a7208c98f759aed4977e067ec206d
1 /*
2 * Copyright (c) 2005,2006 Secure Endpoints Inc.
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without
7 * restriction, including without limitation the rights to use, copy,
8 * modify, merge, publish, distribute, sublicense, and/or sell copies
9 * of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
25 /* $Id$ */
27 #ifndef __AFS_NEWCREDS_H
28 #define __AFS_NEWCREDS_H
30 typedef struct tag_afs_cred_row {
31 wchar_t * cell;
32 wchar_t * realm;
33 afs_tk_method method;
34 khm_int32 flags;
35 } afs_cred_row;
37 /* we checked whether this cell exists */
38 #define DLGROW_FLAG_CHECKED 0x00000001
40 /* cell was checked and was found to be valid */
41 #define DLGROW_FLAG_VALID 0x00000002
43 /* cell was deleted */
44 #define DLGROW_FLAG_DELETED 0x00000004
46 /* tokens obtained for cell */
47 #define DLGROW_FLAG_DONE 0x00000008
49 /* tokens for this cell already exist */
50 #define DLGROW_FLAG_EXISTS 0x00000010
52 /* tokens for this cell exist and is listed under a different
53 identity */
54 #define DLGROW_FLAG_NOTOWNED 0x00000020
56 /* tokens for this cell exist and are expired */
57 #define DLGROW_FLAG_EXPIRED 0x00000040
59 /* this cell was added because it was listed in the identity
60 configuration */
61 #define DLGROW_FLAG_CONFIG 0x00000080
63 /* the subitem indexes for each data field */
64 enum afs_ncwnd_subitems {
65 NCAFS_IDX_CELL=0,
66 NCAFS_IDX_REALM,
67 NCAFS_IDX_METHOD
70 #define DLG_TOOLTIP_TIMER_ID 1
71 #define DLG_TOOLTIP_TIMEOUT 5000
73 typedef struct tag_afs_cred_list {
74 afs_cred_row * rows;
75 int n_rows;
76 int nc_rows;
77 } afs_cred_list;
79 typedef struct tag_afs_dlg_data {
80 khui_new_creds * nc;
82 afs_cred_list creds;
84 khm_int32 afs_enabled;
86 BOOL tooltip_visible;
87 BOOL dirty;
88 HWND tooltip;
90 /* list view state image indices */
91 int idx_new_token;
92 int idx_existing_token;
93 int idx_bad_token;
95 CRITICAL_SECTION cs;
97 /* used with configuration dialogs */
98 khm_boolean config_dlg;
99 khui_config_init_data cfg;
100 khm_handle ident;
101 } afs_dlg_data;
103 #define AFS_DLG_ROW_ALLOC 4
105 INT_PTR CALLBACK
106 afs_dlg_proc(HWND hwnd,
107 UINT uMsg,
108 WPARAM wParam,
109 LPARAM lParam);
111 void
112 afs_dlg_update_rows(HWND hwnd, afs_dlg_data * d);
114 void
115 afs_cred_flush_rows(afs_cred_list * l);
117 void
118 afs_cred_free_rows(afs_cred_list * l);
120 void
121 afs_cred_assert_rows(afs_cred_list * l, int n);
123 void
124 afs_cred_delete_row(afs_cred_list * l, int i);
126 afs_cred_row *
127 afs_cred_get_new_row(afs_cred_list * l);
129 khm_int32 KHMAPI
130 afs_cred_add_cred_proc(khm_handle cred, void * rock);
132 void
133 afs_cred_get_context_creds(afs_cred_list *l,
134 khui_action_context * ctx);
136 void
137 afs_cred_get_identity_creds(afs_cred_list * l,
138 khm_handle ident,
139 khm_boolean * enabled);
141 void
142 afs_cred_write_ident_data(afs_dlg_data * d);
144 khm_int32
145 afs_msg_newcred(khm_int32 msg_subtype,
146 khm_ui_4 uparam,
147 void * vparam);
149 #endif