![]() |
AnyConnect Secure Mobility Client COM API 4.10.06090
|
00001 /************************************************************************** 00002 * Copyright (c) 2008, Cisco Systems, All Rights Reserved 00003 *************************************************************************** 00004 * 00005 * File: VpnApi.idl -- interface definition of the AnyConnect 00006 * VPN API COM wrapper. 00007 * Author: Vincent E. Parla 00008 * Date: 07/14/2008 00009 * 00010 **************************************************************************/ 00011 00012 /** @defgroup COM_API COM API 00013 * This is the interface definition of the AnyConnect Secure Mobility VPN API COM wrapper. 00014 * Users of the COM API will #import vpnapi.dll to obtain the interface, method 00015 * and enumerator defintions. 00016 * The .idl file is included in documentation for reference purposes only. 00017 * 00018 * NOTE: This interface specification is not immutable and can be broken by future versions. 00019 * It is expected that your code will be recompiled / refactored to match the version 00020 * of client installed on the system. 00021 * 00022 * @{ 00023 */ 00024 import "oaidl.idl"; 00025 import "ocidl.idl"; 00026 import "api.h"; /*obtain the api enumerators to embed in the type library*/ 00027 import "VpnApiStringEnums.h"; /*obtain the string table enumerators to embed in the type library*/ 00028 import "RegValueUpgradeCodes.h";/*obtain the upgrade code enumerator to embed in the type library*/ 00029 00030 cpp_quote("#ifdef __cplusplus") 00031 cpp_quote(" using namespace VpnApiStringEnums;") 00032 cpp_quote("#endif //__cplusplus") 00033 00034 interface IVpnApiEvents; //forward declaration of the IVpnApiEvents callback interface. 00035 interface IVpnStats; //forward declaration of the IVpnStats interface. 00036 interface IConnectPromptInfo; //forward declaration of the IConnectPromptInfo interface. 00037 interface IPromptEntry; //forward declaration of the IPromptEntry interface. 00038 interface IPreferenceInfo; //forward declaration of the IPreferenceInfo interface. 00039 interface IPreference; //forward declaration of the IPreference interface. 00040 00041 interface IStringCollection; //forward declaration of the string collection utility interface 00042 interface IInterfaceCollection; //forward declaration of the interface collection utilty interface. 00043 00044 /** 00045 * interface IVpnApi 00046 * Cisco AnyConnect Secure Mobility Client VPN API IDispatch interface specification. This is the VPN API COM Server instantiated by the user via CoCreateInstance. 00047 */ 00048 [ 00049 object, 00050 uuid(027E04AD-347B-4E63-9E10-00BACB3970C8), 00051 oleautomation, 00052 nonextensible, 00053 dual, 00054 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IVpnApi Interface specification. This is the VPN API COM Server instantiated by the user via CoCreateInstance."), 00055 pointer_default(unique) 00056 ] 00057 interface IVpnApi : IDispatch 00058 { 00059 [id(1), helpstring("method Register. This is a convenience method for attaching one or more callback interface(s) without using the IConnectionPoint interface directly.")] 00060 HRESULT Register([in] IVpnApiEvents * pVpnApiEvents, [out, retval] DWORD * pdwCookie); 00061 00062 [id(2), helpstring("method Unregister. This is a convenience method for detaching a callback interface without using the IConnectionPoint interface directly.")] 00063 HRESULT Unregister([in] DWORD dwCookie); 00064 00065 [id(3), helpstring("method Attach. This is the first method that is called to configure the VPN API engine. An event callback IVpnApiEvents is assumed to be already associated, prior to calling this method. Languages like C# would use this method after wiring up the events.")] 00066 HRESULT Attach([in, defaultvalue(ClientType_GUI)] enum ClientType clientType, 00067 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bRequestFullCapabilities, 00068 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bSuppressAutoConnect); 00069 00070 [id(4), helpstring("method Detach. This is the last method that is called to terminate the VPN API engine. Languages like C# would use this method after wiring up the events.")] 00071 HRESULT Detach(); 00072 00073 [id(5), helpstring("method RegisterAndAttach. This method combines Register and Attach into a single convenience method. This supports only one IVpnApiEvents instance per IVpnApi instance. Languages that handle connection points under the covers, like C#, would not use this method, but would instead simply use Attach().")] 00074 HRESULT RegisterAndAttach([in] IVpnApiEvents * pVpnApiEvents, 00075 [in, defaultvalue(ClientType_GUI)] enum ClientType clientType, 00076 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bRequestFullCapabilities, 00077 [in, defaultvalue(-1)/*true*/] VARIANT_BOOL bSuppressAutoConnect); 00078 00079 [id(6), helpstring("method UnregisterAndDetach. This method combines Unregister and Detach into a single convenience method. This supports only one IVpnApiEvents instance per IVpnApi instance. Languages that handle connection points under the covers, like C#, would not use this method, but would instead simply use Detach().")] 00080 HRESULT UnregisterAndDetach(); 00081 00082 [id(7), propput, helpstring("property EnableConsumerDrivenEventModel. Call this before attaching, to enable a consumer-driven event model. This enables the IVpnApiEvents::VpnEventAvailableNotification. It's required to always enable this as the old event model is deprecated.")] 00083 HRESULT EnableConsumerDrivenEventModel([in] VARIANT_BOOL bEnable); 00084 00085 [id(8), helpstring("method ProcessEvents. Use this method if the consumer-driven event model is configured and an IVpnApiEvents::VpnEventAvailableNotification was fired.")] 00086 HRESULT ProcessEvents(); 00087 00088 [id (9), propget, helpstring("property HasFullCapabilities. Indicates whether this instance of the VPN API engine is the master instance.")] 00089 HRESULT HasFullCapabilities([out, retval] VARIANT_BOOL* pbHasFullCapabilities); 00090 00091 [id(10), propget, helpstring("property IsConnected. Indicates that there is a VPN connection.")] 00092 HRESULT IsConnected([out, retval] VARIANT_BOOL* pbIsConnected); 00093 00094 [id(11), propget, helpstring("property IsVPNServiceAvailable. Indicates that the VPN Service is active. (This is also delivered to the IVpnApiEvents callback.)")] 00095 HRESULT IsVPNServiceAvailable([out, retval] VARIANT_BOOL* pbIsVPNServiceAvailable); 00096 00097 [id(12), propget, helpstring("property HostNames. Obtains a collection of hostname strings from the profile.")] 00098 HRESULT HostNames([out, retval] IStringCollection** ppIStringCollection); 00099 00100 [id(13), propget, helpstring("property DefaultHostName. Obtains the default hostname from the profile or the last hostname from a previous connection.")] 00101 HRESULT DefaultHostName([out, retval] BSTR* pstrGetDefaultHostName); 00102 00103 [id(14), helpstring("method ConnectVpn. Connects to the secure gateway using a hostname or ip address.")] 00104 HRESULT ConnectVpn([in] BSTR strHostNameOrAddress); 00105 00106 [id(15), helpstring("method DisconnectVpn. Disconnects from the secure gateway VPN session")] 00107 HRESULT DisconnectVpn(); 00108 00109 [id(16), helpstring("method GetState. Causes the VPN API engine to invoke the IVpnApiEvents::VpnStateNotification method to deliver the current state.")] 00110 HRESULT GetState(); 00111 00112 [id(17), helpstring("method ResetStats. Resets the the internal stat counters back to initial values.")] 00113 HRESULT ResetStats(); 00114 00115 [id(18), helpstring("method StartStats. Starts the automatic stats notification mechanism. This results in IVpnApiEvents::VpnStatsNotification being fired periodically.")] 00116 HRESULT StartStats(); 00117 00118 [id(19), helpstring("method StopStats. Stops the automatic stats notification mechanism.")] 00119 HRESULT StopStats(); 00120 00121 [id(20), helpstring("method UserSubmit. The caller must release the IConnectPromptInfo object, obtained from IVpnApiEvents::VpnUserPromptNotification, prior to calling this method.")] 00122 HRESULT UserSubmit(); 00123 00124 [id(21), propget, helpstring("property Preferences. Obtains a collection of IPreference interface instances.")] 00125 HRESULT Preferences([out, retval] IPreferenceInfo** ppPreferenceInfo); 00126 00127 [id(22), helpstring("method SavePreferences. The caller must release the IPreferenceInfo object prior to calling this method.")] 00128 HRESULT SavePreferences(); 00129 00130 [id(23), propput, helpstring("property BannerResponse. Call this with the user response to the banner.")] 00131 HRESULT BannerResponse([in] VARIANT_BOOL bResponse); 00132 00133 [id(24), propget, helpstring("property OperatingMode. Indicates if an operating mode is enabled.")] 00134 HRESULT IsOperatingMode([in] enum OperatingMode eOperatingMode, [out, retval] VARIANT_BOOL* pbIsEnabled); 00135 00136 [id(25), helpstring("method GetStats. Causes the VPN API engine to invoke the IVpnApiEvents::VpnStatsNotification method to deliver the current stats.")] 00137 HRESULT GetStats(); 00138 00139 [id(26), propget, helpstring("property LastVpnError. Indicates the last error seen while establishing VPN.")] 00140 HRESULT LastVpnError([out, retval] enum VPNError* peLastVpnError); 00141 00142 [id(27), propput, helpstring("property CertBlockedResponse. Call this with the user response to the CertBlockedCB.")] 00143 HRESULT CertBlockedResponse([in] VARIANT_BOOL bUnblock); 00144 00145 [id(28), propput, helpstring("property CertWarningResponse. Call this with the user response to the CertWarningCB.")] 00146 HRESULT CertWarningResponse([in] VARIANT_BOOL bConnect, [in] VARIANT_BOOL bImport); 00147 00148 [id(29), propput, helpstring("property PreConnectReminderResponse. Call this with the user response to the pre-connect reminder.")] 00149 HRESULT PreConnectReminderResponse([in] VARIANT_BOOL bResponse); 00150 00151 [id(99), propget, helpstring("property VpnStatsTranslatedLabel. Allows for pre-fetching translated labels for various VPN statistics prior to obtaining an IVpnStats interface")] 00152 HRESULT VpnStatsTranslatedLabel([in] enum VPNStatsTag eVPNStatsTag, [out, retval] BSTR* pstrTranslatedLabel); 00153 00154 00155 //methods used to obtain the registry key and value to query to determine when a vpn software upgrade is completed. 00156 // 00157 [id(998), propget, helpstring("property UpgradeRegistryKeyName. returns the name of the registry key to monitor for core software upgrade completions.")] 00158 HRESULT UpgradeRegistryKeyName([out, retval] BSTR* pstrUpgradeRegistryKeyName); 00159 [id(999), propget, helpstring("property UpgradeRegistryValueName. returns the name of the registry value to query for core software upgrade completions when the key change is notified.")] 00160 HRESULT UpgradeRegistryValueName([out, retval] BSTR* pstrUpgradeRegistryValueName); 00161 }; 00162 00163 /** 00164 * interface IVpnApiEvents 00165 * Cisco AnyConnect Secure Mobility Client VPN API Event Callback IDispatch interface specification. This is the VPN API COM Event Callback interface that a developer implements and passes to the COM Server using the Attach, RegisterAndAttach, or indirectly via connection points in languages such as C#. 00166 */ 00167 [ 00168 object, 00169 uuid(5D446DC1-A494-4D3D-B5AD-0ADACB3B3EE3), 00170 oleautomation, 00171 nonextensible, 00172 dual, 00173 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IVpnApiEvents callback Interface specification. A user of the VpnApi COM Server provides this interface to receive event notifications."), 00174 pointer_default(unique) 00175 ] 00176 interface IVpnApiEvents : IDispatch 00177 { 00178 [id(1000), helpstring("method VpnStatsNotification. Callback containing a IVpnStats object to be queried for stats.")] 00179 HRESULT VpnStatsNotification([in] IVpnStats * pVpnStats); 00180 00181 [id(1001), helpstring("method VpnStateNotification. Callback containing the state of the VPN session")] 00182 HRESULT VpnStateNotification([in] enum VPNState eState, [in] enum VPNSubState eSubState, [in] BSTR strState); 00183 00184 [id(1002), helpstring("method VpnBannerNotification. Callback containing a Banner notification string.")] 00185 HRESULT VpnBannerNotification([in] BSTR strBannerMessage); 00186 00187 [id(1003), helpstring("method VpnStateNotification. Callback containing a notice pertaining to the VPN session")] 00188 HRESULT VpnNoticeNotification([in] BSTR strNoticeMessage, [in] enum MessageType eMessageType); 00189 00190 [id(1004), helpstring("method VpnExitNotification. Callback containing a notice indicating to shutdown the VPN API release to COM component.")] 00191 HRESULT VpnExitNotification([in] BSTR strExitMessage, [in] long exitCode); 00192 00193 [id(1005), helpstring("method VpnServiceReadyNotification. Callback indicating the VPN Service is online")] /*this could be a prop_put*/ 00194 HRESULT VpnServiceReadyNotification(); 00195 00196 [id(1006), helpstring("method VpnUserPromptNotification. Callback indicating the VPN Service is online")] /*this could be a prop_put*/ 00197 HRESULT VpnUserPromptNotification([in] IConnectPromptInfo * pConnectPromptInfo); 00198 00199 [id(1007), helpstring("method VpnWMHintNotification. Callback containing UI behavior hint and reason.")] 00200 HRESULT VpnWMHintNotification([in] enum WMHint eHint, [in] enum WMHintReason eReason); 00201 00202 [id(1008), helpstring("method VpnWebLaunchHostNotification. Callback containing the Active Host pertaining to the VPN session")] 00203 HRESULT VpnWebLaunchHostNotification([in] BSTR strActiveHost); 00204 00205 [id(1009), helpstring("method VpnEventAvailableNotification. Callback indicating an API Event is available to consume. This notification is sent only if configured to use the consumer-driven event model. A COM user then calls IVpnApi::ProcessEvents.")]/*this could be a prop_put*/ 00206 HRESULT VpnEventAvailableNotification(); 00207 00208 [id(1010), helpstring("method VpnCertBlockedNotification. Callback indicating strUntrustedServer is an untrusted server.")] 00209 HRESULT VpnCertBlockedNotification([in] BSTR strUntrustedServer); 00210 00211 [id(1011), helpstring("method VpnCertWarningNotification. Callback indicating strUntrustedServer is an untrusted server because of the certificate errors in pCertErrors.")] 00212 HRESULT VpnCertWarningNotification([in] BSTR strUntrustedServer, [in] IStringCollection *pCertErrors, [in] VARIANT_BOOL bImportAllowed); 00213 00214 [id(1012), helpstring("method VpnPreConnectReminderNotification. Callback containing a pre-connect reminder notification string.")] 00215 HRESULT VpnPreConnectReminderNotification([in] BSTR strPreConnectReminderMessage); 00216 }; 00217 00218 /** 00219 * interface IVpnStats 00220 * Cisco AnyConnect Secure Mobility Client VPN API Statistics IDispatch interface specification. This is a non-creatable interface that is passed to via an Event Callback method and represents a VPN Statistics object. 00221 */ 00222 [ 00223 object, 00224 uuid(42B1B1F3-5E1E-4d5d-9C59-2E484C726CE6), 00225 oleautomation, 00226 nonextensible, 00227 dual, 00228 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IVpnStats Interface specification."), 00229 pointer_default(unique) 00230 ] 00231 interface IVpnStats : IDispatch 00232 { 00233 [id(100), propget, helpstring("property SecureRoutes. Obtains a collection of IRouteInfo interface instances.")] 00234 HRESULT SecureRoutes([out, retval] IInterfaceCollection** ppSecureRouteInfoCollection); 00235 00236 [id(101), propget, helpstring("property NonsecureRoutes. Obtains a collection of IRouteInfo interface instances.")] 00237 HRESULT NonsecureRoutes([out, retval] IInterfaceCollection** ppNonsecureRouteInfoCollection); 00238 00239 [id(102), propget, helpstring("property ProtocolInfo. Obtains a collection of IProtocolInfo interface instances.")] 00240 HRESULT ProtocolInfo([out, retval] IInterfaceCollection** ppProtocolInfoCollection); 00241 00242 [id(103), propget, helpstring("property FirewallInfo. Obtains a collection of IFirewallInfo interface instances.")] 00243 HRESULT FirewallInfo([out, retval] IInterfaceCollection** ppFirewallInfoCollection); 00244 00245 [id(DISPID_VALUE), propget, helpstring("property StatValue. Obtains the value for various VPN statistics associated IVpnStats interface. (NOTE: This is functionally the same as GetVpnStatsTranslatedLabel.)")] 00246 HRESULT StatValue([in] enum VPNStatsTag eVPNStatsTag, [out,retval] BSTR* pstrStatValue); 00247 00248 [id(104), propget, helpstring("property TranslatedLabel. Obtains the translated labels for various VPN statistics associated IVpnStats interface. (NOTE: This is functionally the same as GetVpnStatsTranslatedLabel.)")] 00249 HRESULT TranslatedLabel([in] enum VPNStatsTag eVPNStatsTag, [out,retval] BSTR* pstrTranslatedLabel); 00250 }; 00251 00252 /** 00253 * interface IConnectPromptInfo 00254 * Cisco AnyConnect Secure Mobility Client VPN API Connection Prompt IDispatch interface specification. This is a non-creatable interface that is passed to via an Event Callback method and represents a VPN Connect Prompt Information object. 00255 */ 00256 [ 00257 object, 00258 uuid(811A60FE-D3E0-4fe6-B627-30723A93554C), 00259 oleautomation, 00260 nonextensible, 00261 dual, 00262 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IConnectPromptInfo Interface specification."), 00263 pointer_default(unique) 00264 ] 00265 interface IConnectPromptInfo : IDispatch 00266 { 00267 [id(200), propget, helpstring("property ConnectPromptType. The type of prompt entry.")] 00268 HRESULT ConnectPromptType([out, retval] enum ConnectPromptType* peConnectPromptType); 00269 00270 [id(201), propget, helpstring("property CountPromptEntry. The number of prompt entries in the collection.")] 00271 HRESULT CountPromptEntry([out, retval] unsigned long* pulEntryCount); 00272 00273 [id(202), propget, helpstring("property Message. Provides a message associated with the credentials being entered.")] 00274 HRESULT Message([out, retval] BSTR* pMessage); 00275 00276 [id(203), propget, helpstring("property PromptNames. Obtains a collection of prompt name strings if available.")] 00277 HRESULT PromptNames([out, retval] IStringCollection** ppPromptNamesCollection); 00278 00279 [id(DISPID_VALUE), propget, helpstring("property PromptEntry. Obtains a prompt entry based on a tag value provided.")] 00280 HRESULT PromptEntry([in] BSTR strPromptName, [out, retval] IPromptEntry ** ppPromptEntry); 00281 00282 [id(205), propget, helpstring("property PromptEntries. Obtains a collection of prompt entries.")] 00283 HRESULT PromptEntries([out, retval] IInterfaceCollection** ppPromptEntriesCollection); 00284 00285 [id(206), propget, helpstring("property HasAuthenticationError. Indicates whether an authentication error has occurred.")] 00286 HRESULT HasAuthenticationError([out, retval] VARIANT_BOOL* pbAuthErr); 00287 00288 [id(207), propget, helpstring("property SubmitButtonName. Provides the name to be used for the Submit Button.")] 00289 HRESULT SubmitButtonName([out, retval] BSTR* pstrSubmitButton); 00290 00291 [id(208), propget, helpstring("property HasEnrollmentCA. Indicates an Enrollment CA is available.")] 00292 HRESULT HasEnrollmentCA([out, retval] VARIANT_BOOL* pbCAAvailable); 00293 00294 [id(209), propput, helpstring("property UseEnrollmentCA. Inform the VPN API to use the Enrollement CA.")] 00295 HRESULT UseEnrollmentCA([in] VARIANT_BOOL bUseCA); 00296 00297 [id(210), propput, helpstring("property TunnelGroup. Allows the setting of the currently selected Tunnel group")] 00298 HRESULT TunnelGroup([in] BSTR strSelectedTunnelGroup); 00299 00300 [id(211), propget, helpstring("property IsCanceled. Indicates if the user has canceled the prompt.")] 00301 HRESULT IsCanceled([out, retval] VARIANT_BOOL* pbIsCanceled); 00302 00303 [id(212), propput, helpstring("property Canceled. Inform the VPNAPI that the user has canceled the prompt.")] 00304 HRESULT Canceled([in] VARIANT_BOOL bIsCanceled); 00305 }; 00306 00307 /** 00308 * interface IVpnStats 00309 * Cisco AnyConnect Secure Mobility Client VPN API Prompt Entry IDispatch interface specification. This is a non-creatable interface that is contains Prompt Entry information. 00310 */ 00311 [ 00312 object, 00313 uuid(548A1F06-AECE-4506-8ABB-5E3D3A99B67B), 00314 oleautomation, 00315 nonextensible, 00316 dual, 00317 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IPromptEntry Interface specification."), 00318 pointer_default(unique) 00319 ] 00320 interface IPromptEntry : IDispatch 00321 { 00322 [id(301), propget, helpstring("property Value. Gets the current value for the prompt entry.")] 00323 HRESULT Value([out, retval] BSTR* pstrValue); 00324 00325 [id(301), propput, helpstring("property Value. Sets a value explicitly for a prompt entry.")] 00326 HRESULT Value([in] BSTR strValue); 00327 00328 [id(302), propget, helpstring("property PromptName. This is the non-translated prompt.")] 00329 HRESULT PromptName([out, retval] BSTR* pstrPromptName); 00330 00331 [id(303), propget, helpstring("property PromptLabel. This is the translated prompt.")] 00332 HRESULT PromptLabel([out, retval] BSTR* pstrPromptLabel); 00333 00334 [id(304), propget, helpstring("property PromptType. Obtains the type of prompt (for example, password), etc.")] 00335 HRESULT PromptType([out, retval] enum PromptType* pPromptType); 00336 00337 [id(305), propget, helpstring("property IsEnabled. Indicates whether this should be user editable.")] 00338 HRESULT IsEnabled([out, retval] VARIANT_BOOL* pbIsEnabled); 00339 00340 [id(306), propget, helpstring("property IsVisible. Indicates whether this should be displayed to the user.")] 00341 HRESULT IsVisible([out, retval] VARIANT_BOOL* pbIsVisible); 00342 00343 [id(307), propget, helpstring("property ValueOptions. Obtains a collection of value option strings.")] 00344 HRESULT ValueOptions([out, retval] IStringCollection** ppValueOptionsCollection); 00345 00346 [id(308), propget, helpstring("property IsEntryGroup")] 00347 HRESULT IsEntryGroup([out, retval] VARIANT_BOOL* pbIsEntryGroup); 00348 }; 00349 00350 /** 00351 * interface IRouteInfo 00352 * Cisco AnyConnect Secure Mobility Client VPN API Route Information IDispatch interface specification. This is a non-creatable interface that represents a Route Information object. 00353 */ 00354 [ 00355 object, 00356 uuid(02E2AE5E-A8C8-458e-92B0-B72B322B623C), 00357 oleautomation, 00358 nonextensible, 00359 dual, 00360 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IRouteInfo Interface specification."), 00361 pointer_default(unique) 00362 ] 00363 interface IRouteInfo : IDispatch 00364 { 00365 [id(401), propget, helpstring("property Network route")] 00366 HRESULT Network([out, retval] BSTR* pstrNetwork); 00367 00368 [id(402), propget, helpstring("property Subnet for the route.")] 00369 HRESULT Subnet([out, retval] BSTR* pstrSubnet); 00370 }; 00371 00372 /** 00373 * interface IProtocolInfo 00374 * Cisco AnyConnect Secure Mobility Client VPN API Protocol Information IDispatch interface specification. This is a non-creatable interface that represents a Protocol Information object. 00375 */ 00376 [ 00377 object, 00378 uuid(A0D63CA4-68E6-44e8-8738-19D6E4BC82BE), 00379 oleautomation, 00380 nonextensible, 00381 dual, 00382 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IProtocolInfo Interface specification."), 00383 pointer_default(unique) 00384 ] 00385 interface IProtocolInfo : IDispatch 00386 { 00387 [id(501), propget, helpstring("property ProtocolLabel. Obtain a protocol label string from the enumerated type.")] 00388 HRESULT ProtocolLabel([in] enum ProtocolInfoTag eProtocolInfoTag, 00389 [out, retval] BSTR* pstrProtocolLabel); 00390 00391 [id(DISPID_VALUE), propget, helpstring("property ProtocolValue. Obtain a protocol value string from the enumerated type.")] 00392 HRESULT ProtocolValue([in] enum ProtocolInfoTag eProtocolInfoTag, 00393 [out, retval] BSTR* pstrProtocolValue); 00394 00395 [id(503), propget, helpstring("property IsActive. Indicates if the protocol is active.")] 00396 HRESULT IsActive([out, retval] VARIANT_BOOL * pbIsActive); 00397 }; 00398 00399 /** 00400 * interface IFirewallInfo 00401 * Cisco AnyConnect Secure Mobility Client VPN API Firewall Information IDispatch interface specification. This is a non-creatable interface that represents a Firweall Information object containing firewall rule information. 00402 */ 00403 [ 00404 object, 00405 uuid(F71DC93F-C07D-44a3-95B4-864177AE0F7E), 00406 oleautomation, 00407 nonextensible, 00408 dual, 00409 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IFirewallInfo Interface specification."), 00410 pointer_default(unique) 00411 ] 00412 interface IFirewallInfo : IDispatch 00413 { 00414 [id(541), propget, helpstring("property Permission of a firewall rule")] 00415 HRESULT Permission([out, retval] BSTR* pstrPermission); 00416 00417 [id(542), propget, helpstring("property Protocol for a firewall rule.")] 00418 HRESULT Protocol([out, retval] BSTR* pstrProtocol); 00419 00420 [id(543), propget, helpstring("property Interface for a firewall rule.")] 00421 HRESULT Interface([out, retval] BSTR* pstrInterface); 00422 00423 [id(544), propget, helpstring("property Source Port Range for a firewall rule.")] 00424 HRESULT SrcPortRange([out, retval] BSTR* pstrSrcPortRange); 00425 00426 [id(545), propget, helpstring("property Destination Port Range for a firewall rule.")] 00427 HRESULT DstPortRange([out, retval] BSTR* pstrDstPortRange); 00428 00429 [id(546), propget, helpstring("property Destination Address for a firewall rule.")] 00430 HRESULT DstAddr([out, retval] BSTR* pstrDstAddr); 00431 }; 00432 00433 00434 /** 00435 * interface IPreferenceInfo 00436 * Cisco AnyConnect Secure Mobility Client VPN API User Preference Information IDispatch interface specification. This is a non-creatable interface that represents a User Preference Information object. 00437 */ 00438 [ 00439 object, 00440 uuid(3E73BCCD-C4E4-4842-AB58-9F973E7D226F), 00441 oleautomation, 00442 nonextensible, 00443 dual, 00444 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IPreferenceInfo Interface specification."), 00445 pointer_default(unique) 00446 ] 00447 interface IPreferenceInfo : IDispatch 00448 { 00449 [id(601), propget, helpstring("property CountPreferences. The number of preferences available.")] 00450 HRESULT CountPreferences([out, retval] unsigned long * pulCountPreferences); 00451 00452 [id(DISPID_VALUE), propget, helpstring("property Preference. Gets the instance of an IPreference interface associated with the preference tag.")] 00453 HRESULT Preference([in] enum PreferenceId ePreferenceId, [out, retval] IPreference** ppPreference); 00454 00455 [id(603), propget, helpstring("property Preferences. Obtains a collection of IPreference interface instances.")] 00456 HRESULT Preferences([out, retval] IInterfaceCollection** ppPreferencesCollection); 00457 00458 [id(604), propget, helpstring("property PreferenceHeading. The heading string for preferences.")] 00459 HRESULT PreferenceHeading([out, retval] BSTR * pstrPreferenceHeading); 00460 }; 00461 00462 /** 00463 * interface IPreference 00464 * Cisco AnyConnect Secure Mobility Client VPN API Usser Preference IDispatch interface specification. This is a non-creatable interface that represents a User Preference object. 00465 */ 00466 [ 00467 object, 00468 uuid(01F3D78C-AC49-48d1-8782-0EB481961341), 00469 oleautomation, 00470 nonextensible, 00471 dual, 00472 helpstring("Cisco AnyConnect Secure Mobility Client VPN API IPreference Interface specification."), 00473 pointer_default(unique) 00474 ] 00475 interface IPreference : IDispatch 00476 { 00477 [id(701), propget, helpstring("property PreferenceValue. Gets the current value for the preference entry.")] 00478 HRESULT PreferenceValue([out, retval] BSTR* pstrPreferenceValue); 00479 00480 [id(701), propput, helpstring("property PreferenceValue. Sets the value explicitly for a preference entry.")] 00481 HRESULT PreferenceValue([in] BSTR strPreferenceValue); 00482 00483 [id(703), propget, helpstring("property PreferenceId. Gets the preference identifier enumeration value for the preference entry.")] 00484 HRESULT PreferenceId([out, retval] enum PreferenceId * pPreferenceId); 00485 00486 [id(704), propget, helpstring("property Children. Obtains a collection of IPreference interface instances that are sub-entries of this preference.")] 00487 HRESULT Children([out, retval] IInterfaceCollection** ppChildPreferencesCollection); 00488 00489 [id(705), propget, helpstring("property PromptEntry. Obtains a prompt entry instance associated with this preference.")] 00490 HRESULT PromptEntry([out, retval] IPromptEntry ** ppPromptEntry); 00491 }; 00492 00493 00494 //Collection interfaces// 00495 00496 /** 00497 * interface IStringCollection 00498 * Cisco AnyConnect Secure Mobility Client VPN API String Collection IDispatch interface specification. This is a non-creatable interface that represents a Collection of Strings. 00499 */ 00500 [ 00501 object, 00502 uuid(6292ECAC-42CD-43ea-A96C-0C072772B4BE), 00503 oleautomation, 00504 nonextensible, 00505 dual, 00506 helpstring("Cisco AnyConnect Secure Mobility Client VPN API Utility String Collection Interface specification."), 00507 pointer_default(unique) 00508 ] 00509 interface IStringCollection : IDispatch 00510 { 00511 [id(DISPID_NEWENUM), propget, helpstring("method _NewEnum. Obtains a new String Collection enumerator interface.")] 00512 HRESULT _NewEnum([out, retval] IUnknown** ppUnk); 00513 00514 [id(DISPID_VALUE), propget, helpstring("property Item. Obtains a string object in the collection. NOTE: collections are 1's based indexing.")] 00515 HRESULT Item([in] long nIndex, [out, retval] BSTR* pString); 00516 00517 [id(1), propget, helpstring("property Count. Obtains the count of the number of objects in the collection.")] 00518 HRESULT Count([out, retval] long * pCount); 00519 }; 00520 00521 /** 00522 * interface IStringCollection 00523 * Cisco AnyConnect Secure Mobility Client VPN API Interface Collection IDispatch interface specification. This is a non-creatable interface that represents a Collection of Interface instances of objects. 00524 */ 00525 [ 00526 object, 00527 uuid(E0854B5E-16D3-46b5-8767-420EB1F48041), 00528 oleautomation, 00529 nonextensible, 00530 dual, 00531 helpstring("Cisco AnyConnect Secure Mobility Client VPN API Utility IUnknown Collection Interface specification."), 00532 pointer_default(unique) 00533 ] 00534 interface IInterfaceCollection : IDispatch 00535 { 00536 [id(DISPID_NEWENUM), propget, helpstring("property _NewEnum. Obtains a new Interface Collection enumerator interface.")] 00537 HRESULT _NewEnum([out, retval] IUnknown** ppUnk); 00538 00539 [id(DISPID_VALUE), propget, helpstring("property Item. Obtains an IUnknown interface for an object in the collection. The user would then QI for the actual interface they wanted to obtain. NOTE: collections are 1's based indexing.")] 00540 HRESULT Item([in] long nIndex, [out, retval] IUnknown** ppInterface); 00541 00542 [id(1), propget, helpstring("property Count. Obtains the count of the number of objects in the collection.")] 00543 HRESULT Count([out, retval] long * pCount); 00544 }; 00545 00546 /////////////////////////////////////// VPN API Type Library ////////////////////////////////////// 00547 [ 00548 uuid(C15C09AE-FCCE-9221-FFA2-7465FEAAE55A), 00549 version(1.0), 00550 helpstring("Cisco AnyConnect Secure Mobility Client VPN API 1.0 Type Library") 00551 ] 00552 library VpnApiLib 00553 { 00554 importlib("stdole32.tlb"); 00555 importlib("stdole2.tlb"); 00556 00557 [ 00558 uuid(C15C0F4F-DDFB-4591-AD53-C9A71C9C15C0), 00559 helpstring("VpnApi Class") 00560 ] 00561 coclass VpnApi 00562 { 00563 [default] interface IVpnApi; 00564 [default, source] dispinterface IVpnApiEvents; 00565 }; 00566 00567 interface IRouteInfo; 00568 interface IProtocolInfo; 00569 interface IFirewallInfo; 00570 enum RegValueUpgradeCodesTag; 00571 } 00572 00573 /** @} */