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