Pinvoke
  • Bienvenida
  • desktopfunctions
    • advapi32
      • CREATE_PROCESS_FLAGS
      • ControlService
      • ConvertSecurityDescriptorToStringSecurityDescriptor
      • ConvertSidToStringSid
      • ConvertStringSidToSid
      • CopySid
      • CreateProcessAsUser
      • CreateProcessAsUserW
      • CreateProcessWithLogonW
      • CreateService
      • CreateWellKnownSid
      • CredRead
      • CredWrite
      • CryptGetDefaultProvider
      • DefaultPassword
      • DeleteService
      • DuplicateTokenEx
      • EncryptFile
      • BM_CLICK
      • ImpersonateLoggedOnUser
      • ImpersonateNamedPipeClient
      • InitiateSystemShutdown
      • InitiateSystemShutdownEx
      • IsTextUnicode
      • LOGON_TYPE
      • LSARetrievePrivateData
      • LogonUser
      • LookupAccountName
      • LookupAccountSid
      • LookupPrivilegeValue
      • LsaClose
      • LsaEnumerateAccountsWithUserRight
      • LsaLookupSids
      • LsaOpenPolicy
      • LsaStorePrivateData
      • PROV_ENUMALGS_EX
      • PrivilegeNames
      • QueryServiceConfig
      • QueryServiceConfig2
      • QueryServiceStatus
      • ReadEventLog
      • RegConnectRegistry
      • RegEnumKeyEx
      • RegOpenKey
      • RegUnLoadKey
      • RegistryChangeMonitor
      • ReportEvent
      • RevertToSelf
      • SIDs
      • SetNamedSecurityInfo
      • TreeSetNamedSecurityInfo
      • CERT_VERIFY_REV_CHAIN_FLAG
      • C# Signature:
      • COLOR_
      • changeserviceconfig
      • DAT_ASS
      • regopenkeyex
    • avifil32
      • EMR_
      • HomePage
      • IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
    • cards
      • CardsWrapper
      • IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
      • IOCTL_USB_GET_NODE_CONNECTION_NAME
      • IOCTL_USB_GET_NODE_INFORMATION
    • cfgmgr32
      • CM_Enumerate_Classes
      • UInteger
      • WM
      • HomePage
    • comctl32
      • CreatePropertySheetPage
      • ImageList_AddIcon
      • TaskDialog
      • _ContentBaseDefinition
    • comdlg32
      • CopyProgressResult
      • GetSaveFileName
      • CredUIReturnCodes
      • CryptProtectFlags
    • credui
      • CredPackAuthenticationBuffer
      • CredUIConfirmCredentials
      • CredUIParseUserName
      • CredUIPromptForCredentials
      • CredUIPromptForCredentialsW
      • CredUnPackAuthenticationBuffer
      • DISP_CHANGE
      • HRESULT
      • HomePage
    • crypt32
      • C# Signature:
      • CryptProtectData
      • CryptQueryObject
      • CryptUnprotectData
      • HookType
      • PFXImportCertStore
      • PROPID
    • dbghelp
      • MiniDumpWriteDump
    • dhcpsapi
      • DHCP_SEARCH_INFO
      • DhcpAddSubnetElementV5
      • DhcpDeleteClientInfo
      • DhcpEnumSubnetClients
      • DhcpEnumSubnetElementsV5
      • DhcpEnumSubnets
      • DhcpRemoveSubnetElementV5
      • RasError
      • RegType
    • dmcl40
      • C# Signature:
      • ResourceType
    • dnsapi
      • DNSQueryEx
      • DnsQuery
      • TCP_TABLE_CLASS
    • dtl
      • ThemeSize
    • dwmapi
      • DwmDefWindowProc
      • DwmEnableComposition
      • DwmGetColorizationColor
      • DwmGetColorizationParameters
      • DwmGetWindowAttribute
      • DwmIsCompositionEnabled
      • DwmSetColorizationParameters
      • DwmpSetColorization
      • _ContentBaseDefinition
      • VistaBridgeDemoApp
    • faultrep
      • tagREADYSTATE
    • gdi32
      • HomePage
      • C# Signature:
      • AlphaBlend
      • ArcTo
      • BitBlt
      • Chord
      • CombineRgn
      • CreateBitmap
      • C# Signature:
      • CreateCompatibleBitmap
      • IAuthenticate
      • CreateDC
      • CreateDIBSection
      • CreateEllipticRgn
      • C# Signature:
      • CreateFontIndirect
      • C# Signature:
      • C# Signature:
      • CreatePolygonRgn
      • CreateRectRgn
      • C# Signature:
      • CreateRoundRectRgn
      • CreateSolidBrush
      • C# Signature:
      • DeleteDC
      • DeleteObject
      • DeviceContext
      • EnumFontFamilies
      • EnumFontFamiliesEx
      • ExtEscape
      • ExtTextOut
      • FillRgn
      • FloodFill
      • GdipLoadImage
      • C# Signature:
      • GetCharABCWidthsFloat
      • Sample Code:
      • GetCharacterPlacement
      • GetCurrentObject
      • C# Signature:
      • GetDC
      • C# Signature:
      • C# Signature:
      • GetDeviceCaps
      • GetDeviceGammaRamp
      • GetFontData
      • GetFontUnicodeRanges
      • C# Signature:
      • GetOutlineTextMetrics
      • C# Signature:
      • GetRegionData
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • GetTextExtentPoint
      • GetTextExtentPoint32
      • C# Signature:
      • GetTextMetrics
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • GradientFill
      • HBitmap
      • IAutoComplete2
      • C# Signature:
      • LineTo
      • MapModes
      • MaskBlt
      • MoveToEx
      • OffsetRgn
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • Polygon
      • C# Signature:
      • C# Signature:
      • PostScript
      • C# Signature:
      • RoundRect
      • IEnumIDList
      • C# Signature:
      • C# Signature:
      • SetDeviceGammaRamp
      • SetMapMode
      • SetPixel
      • SetStretchBltMode
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • StretchBlt
      • C# Signature:
      • TextOut
      • WmfPlaceableFileHeader
      • C# Definition
      • IEnumSTATSTG
      • IOleClientSite
      • IOleObject
      • createfont
      • IOleWindow
      • getglyphoutline
      • getpixel
      • gluErrorString
      • IPersistFile
    • gdiplus
      • GdipBitmapSetPixel
      • GdipBitmapSetResolution
      • GdipBitmapUnlockBits
      • GdipCloneBitmapArea
      • GdipCreateBitmapFromFile
      • GdipCreateBitmapFromFileICM
      • GdipCreateBitmapFromGdiDib
      • GdipCreateBitmapFromGraphics
      • GdipCreateBitmapFromHBITMAP
      • GdipCreateBitmapFromHICON
      • GdiplusStartup
      • IServiceProvider
      • IShellIconOverlayIdentifier
      • IShellIten
    • getuname
      • GetUName
      • IShellView
    • glu32
      • IShellView3
      • IStream
      • _ContentBaseDefinition
    • glut32
      • ayy
    • gsapi
      • BROWSEINFO
      • gsapi_delete_instance
    • hhctrl
      • HtmlHelp
      • CAPTUREPARMS
      • CMINVOKECOMMANDINFOEX
    • hid
      • HidD_FlushQueue
      • HidD_FreePreparsedData
      • HidD_GetAttributes
      • HidD_GetFeature
      • HidD_GetIndexedString
      • HidD_GetInputReport
      • HidD_GetManufacturerString
      • HidD_GetNumInputBuffers
      • HidD_GetPhysicalDescriptor
      • HidD_GetPreparsedData
      • HidD_SetNumInputBuffers
    • hlink
      • CREDUI_INFO
      • CRYPTPROTECT_PROMPTSTRUCT
    • httpapi
      • HttpSetServiceConfiguration
      • DATA_BLOB
    • icmp
      • IcmpCloseHandle
      • IcmpCreateFile
      • IcmpSendEcho
      • EXIT_THREAD_DEBUG_INFO
      • GLOBAL_POWER_POLICY
    • imm32
      • GLOBAL_USER_POWER_POLICY
      • ImmGetConversionList
      • HomePage
      • IMAGE_SECTION_HEADER
    • iphlpapi
      • EnableRouter
      • GetAdaptersAddresses
      • GetAdaptersInfo
      • GetBestInterface
      • GetExtendedTcpTable
      • GetInterfaceInfo
      • GetIpAddrTable
      • GetIpNetTable
      • GetNetworkParams
      • MAX_HOSTNAME_LEN
      • INPUT_RECORD
      • PfBindInterfaceToIPAddress
      • PfCreateInterface
      • SendARP
      • UnenableRouter
      • KBDLLHOOKSTRUCT
    • iprop
      • MIXERLINECONTROLS
      • MixerCaps
      • MixerLineComponentType
    • irprops
      • BluetoothEnableDiscovery
      • BluetoothFindFirstDevice
      • BluetoothFindFirstRadio
      • BluetoothFindNextDevice
      • BluetoothFindRadioClose
      • BluetoothGetRadioInfo
      • BluetoothIsConnectable
      • BluetoothIsDiscoverable
      • PRINTER_DEFAULTS
      • PROCESS_INFORMATION
    • kernel32
      • RAS_STATS
      • APIGetVersionEx
      • AttachConsole
      • Beep
      • COORD
      • CTL_CODE
      • CheckRemoteDebuggerPresent
      • CloseHandle
      • CompareFileTime
      • ConnectNamedPipe
      • CopyFileEx
      • CreateDirectoryEx
      • CreateEvent
      • CreateFile
      • CreateFileMapping
      • CreateMemoryResourceNotification
      • CreateNamedPipe
      • CreatePipe
      • CreateProcessW
      • CreateRemoteThread
      • CreateSymbolicLink
      • CreateThread
      • CreateToolhelp32Snapshot
      • RECT
      • DebugActiveProcess
      • DebugActiveProcessStop
      • DefineDosDevice
      • DeleteCriticalSection
      • DeleteFile
      • DeviceIoControl
      • DriveLetter
      • DuplicateHandle
      • EnterCriticalSection
      • EnumResourceNames
      • EnumResourceTypes
      • FileStream
      • FileTimeToLocalFileTime
      • FileTimeToSystemTime
      • FindClose
      • C# Signature:
      • FindFirstChangeNotification
      • FindFirstFile
      • FindFirstFileEx
      • FindNextChangeNotification
      • FindNextFile
      • SHARE_INFO_503
      • FlsAlloc
      • C# Signature:
      • C# Signature:
      • FormatMessage
      • FormatMessageA
      • FreeLibrary
      • GetApplicationUserModelId
      • GetCPInfo
      • GetCPInfoEx
      • SHChangeNotifyEntry
      • GetCommModemStatus
      • GetConsoleFontSize
      • GetConsoleHistoryInfo
      • GetConsoleScreenBufferInfo
      • GetConsoleScreenBufferInfoEx
      • GetConsoleSelectionInfo
      • GetConsoleWindow
      • GetCurrencyFormat
      • GetCurrentConsoleFont
      • GetCurrentConsoleFontEx
      • GetCurrentProcess
      • GetCurrentProcessId
      • GetDriveType
      • GetExitCodeThread
      • GetFileInformationByHandle
      • GetFileInformationByHandleEx
      • GetFileSizeEx
      • GetFileTime
      • GetLastError
      • GetLocalTime
      • GetLogicalDriveStrings
      • GetModuleHandle
      • C# Signature:
      • GetNativeSystemInfo
      • GetOverlappedResult
      • GetPrivateProfileSection
      • GetPrivateProfileString
      • GetProcAddress
      • GetProcessId
      • GetProcessIdOfThread
      • GetProcessIoCounters
      • GetProcessTimes
      • GetSystemPowerStatus
      • GetSystemTime
      • C# Signature:
      • GetSystemTimes
      • GetTempFileName
      • GetTempPath
      • SOCKET_ADDRESS
      • GetThreadSelectorEntry
      • GetThreadTimes
      • GetTimeFormat
      • GetTimeZoneInformation
      • GetUserPreferredUILanguages
      • GetVersionEx
      • GetVolumeInformation
      • GetWindowsDirectory
      • GlobalAlloc
      • GlobalDeleteAtom
      • GlobalFree
      • GlobalLock
      • GlobalMemoryStatusEx
      • C# Signature:
      • SP_DEVICE_INTERFACE_DETAIL_DATA
      • IO_COUNTERS
      • InitializeCriticalSection
      • InitializeProcThreadAttributeList
      • IsProcessInJob
      • JOBOBJECT_BASIC_LIMIT_INFORMATION
      • LCMapStringEx
      • LeaveCriticalSection
      • ScsiPassThroughWithBuffers
      • LocalAlloc
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • MoveFile
      • MoveFileEx
      • MoveFileWithProgress
      • MoveMemory
      • MultiByteToWideChar
      • NetBIOS
      • OpenFile
      • OpenFileMapping
      • WIN32_FILE_ATTRIBUTE_DATA
      • OpenThread
      • Process32First
      • Process32Next
      • ProcessMemoryChunk
      • QueryDosDevice
      • QueryPerformanceCounter
      • QueryPerformanceFrequency
      • QueueUserAPC
      • ReadConsoleInput
      • ReadDirectoryChangesW
      • ReadFile
      • C# Signature:
      • ReadProcessMemory
      • WLAN_CONNECTION_PARAMETERS
      • C# Signature:
      • ResumeThread
      • SafeFileHandle
      • SearchPath
      • SetCommBreak
      • SetConsoleFont
      • SetConsoleMode
      • SetConsoleScreenBufferInfoEx
      • SetConsoleWindowInfo
      • C# Signature:
      • SetDllDirectory
      • SetFileInformationByHandle
      • SetFilePointer
      • SetFilePointerEx
      • SetFileTime
      • SetHandleInformation
      • SetLastError
      • SetLocalTime
      • SetNamedPipeHandleState
      • SetProcessWorkingSetSize
      • SetSystemTime
      • C# Signature:
      • SetThreadExecutionState
      • SetTimeZoneInformation
      • SetWaitableTimer
      • C# Signature:
      • coredll.CreateFile
      • coredll.CreateProcess
      • SuspendThread
      • SystemTimeToFileTime
      • TEST
      • UnmapViewOfFile
      • UpdateProcThreadAttribute
      • coredll.DeviceIoControl
      • C# Signature:
      • VirtualAlloc
      • VirtualAllocEx
      • javascript
      • VirtualProtectEx
      • VirtualQuery
      • kernel32.CreateFile
      • WOW64
      • kernel32.CreateProcess
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • WaitForSingleObject
      • WinExec
      • Wow64DisableWow64FsRedirection
      • C# Signature:
      • WriteConsoleInput
      • C# Signature:
      • kernel32.DeviceIoControl
      • WriteFileEx
      • WriteFileGather
      • WritePrivateProfileSection
      • WritePrivateProfileString
      • sockaddr_in6_old
      • as
      • HomePage
      • Tyde
      • createmutex
      • getcomputername
      • getprivateprofilesectionnames
      • heapwalk
      • WriteProcessMemory
      • iswow64process
      • _ContentBaseDefinition
      • lstrcpy
      • lstrcpyn
      • delete
      • HomePage
      • _ContentBaseDefinition
      • javascript
    • mapi32
      • HomePage
      • MAPIAddress
      • MAPIDeleteMail
      • MAPIDetails
      • MAPIFindNext
      • MAPIFreeBuffer
      • MAPILogoff
      • MAPILogon
      • MAPIReadMail
      • MAPIResolveName
      • MAPISaveMail
      • MAPISendDocuments
      • MAPISendMail
      • _ContentBaseDefinition
      • javascript
    • mpr
      • DllImport
      • _ContentBaseDefinition
      • WNetAddConnection2
      • WNetAddConnection3
      • WNetEnumResource
      • WNetGetConnection
      • cfgmgr32
      • javascript
    • mqrt
      • MQGetQueueSecurity
      • MQSetQueueSecurity
    • mscorsn
      • _ContentBaseDefinition
      • GetOpenFileName
    • msdrm
      • HomePage
      • javascript
      • HomePage
    • msi
      • _ContentBaseDefinition
      • MsiGetFileSignatureInformation
      • MsiGetProductInfo
      • MsiQueryProductState
      • javascript
      • HomePage
    • msports
      • SerialDisplayAdvancedSettings
    • msvcrt
      • javascript
      • C# Signature:
      • _stat
      • memcmp
      • memcpy
      • memmove
      • sprintf
    • netapi32
      • DsAddressToSiteNames
      • DsGetDcName
      • DsGetDcNext
      • DsGetDcOpen
      • _ContentBaseDefinition
      • LsaQueryInformationPolicy
      • NetApiBufferFree
      • NetGetDCName
      • NetGetJoinInformation
      • NetJoinDomain
      • NetLocalGroupAddMembers
      • NetLocalGroupEnum
      • NetLocalGroupGetMembers
      • NetRemoteTOD
      • NetRenameMachineInDomain
      • NetSessionEnum
      • C# Signature:
      • NetShareEnum
      • NetShareSetInfo
      • NetUserAdd
      • NetUserGetInfo
      • NetUserGetLocalGroups
      • NetWkstaGetInfo
      • javascript
      • javascript
      • netservergetinfo
      • netsharegetinfo
      • netuseadd
    • ntdll
      • InitializeObjectAttributes
      • NtCreateFile
      • NtCreateSection
      • NtGetContextThread
      • NtMapViewOfSection
      • NtOpenDirectoryObject
      • C# Signature:
      • NtQueryInformationFile
      • NtQueryInformationProcess
      • NtQueryObject
      • NtQuerySymbolicLinkObject
      • NtQuerySystemInformation
      • NtQuerySystemTime
      • NtQueryVirtualMemory
      • NtRaiseHandError
      • NtResumeProcess
      • Boo Signature:
      • Boo Signature:
      • NtSuspendProcess
      • NtTerminateProcess
      • Boo Signature:
      • PROCESSINFOCLASS
      • RtlAdjustPrivilege
      • RtlCreateProcessParametersEx
      • RtlGetVersion
      • RtlInitializeSid
      • RtlMoveMemory
      • SYSTEM_INFORMATION_CLASS
      • _ContentBaseDefinition
    • ntdsapi
      • DsCrackNames
      • DsGetDomainControllerInfo
      • _ContentBaseDefinition
      • HomePage
      • javascript
    • odbc32
      • AddFontMemResourceEx
      • SQLAllocEnv
      • SQLAllocHandle
      • SQLBindCol
      • SQLDataSources
      • SQLFreeHandle
      • SQLSetEnvAttr
      • CreateCompatibleDC
      • HomePage
    • odbccp32
      • SQLConfigDataSource
      • SQLGetPrivateProfileString
      • SQLInstallerError
      • SQLSetConfigMode
      • SetBitmapBits
    • ole32
      • CLIPFORMAT
      • CoCreateGuid
      • CoCreateInstance
      • CoCreateInstanceEx
      • C# Signature:
      • CoGetClassObject
      • C# Signature:
      • CoInitializeEx
      • _ContentBaseDefinition
      • C# Signature:
      • C# Signature:
      • component-specs
      • C# Signature:
      • CreateILockBytesOnHGlobal
      • coredll
      • FmtIdToPropStgName
      • C# Signature:
      • GetHGlobalFromILockBytes
      • gdi32
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • OleSave
      • OleSaveToStream
      • C# Signature:
      • C# Signature:
      • STGM
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • StgOpenStorage
      • javascript
      • C# Signature:
      • C# Signature:
      • HomePage
      • Win2K
      • C# Signature:
      • C# Signature:
      • _ContentBaseDefinition
      • coregistermessagefilter
      • javascript
      • _ContentBaseDefinition
      • oledraw
    • oleacc
      • AccessibleChildren
      • AccessibleObjectFromPoint
      • AccessibleObjectFromWindow
      • HomePage
      • IAccessible
      • ObjectFromLresult
      • SystemAccessibleObject
      • WindowFromAccessibleObject
      • _ContentBaseDefinition
      • javascript
    • oleaut32
      • GetActiveObject
      • javascript
      • SysFreeString
      • UnRegisterTypeLib
      • HomePage
      • _ContentBaseDefinition
    • opengl32
      • WinXP
      • javascript
      • _ContentBaseDefinition
      • wglUseFontOutlines
    • powrprof
      • GetCurrentPowerPolicies
      • javascript
      • PowerReadACDefaultIndex
      • PowerReadACValueIndex
      • PowerReadDCDefaultIndex
      • PowerReadDCValue
      • PowerReadDCValueIndex
      • PowerReadDescription
      • PowerReadPossibleDescription
      • PowerReadPossibleFriendlyName
      • PowerReadPossibleValue
      • PowerReadSettingAttributes
      • PowerReadValueIncrement
      • PowerReadValueMax
      • PowerReadValueMin
      • PowerReadValueUnitsSpecifier
      • SetSuspendState
      • _ContentBaseDefinition
      • _ContentBaseDefinition
    • printui
      • javascript
    • propsys
      • HomePage
    • psapi
      • EnumProcesses
      • GetPerformanceInfo
      • GetProcessImageFileName
      • _ContentBaseDefinition
      • javascript
    • pstorec
      • NetworkInformation
      • javascript
    • query
      • LoadIFilter
    • quickusb
      • HomePage
      • _ContentBaseDefinition
    • rasapi32
      • javascript
      • RasDial
      • RasEnumConnections
      • RasEnumDevices
      • RasEnumEntries
      • RasGetConnectionStatistics
      • RasGetEntryDialParams
      • RasHangUp
      • _ContentBaseDefinition
    • rpcrt4
      • javascript
      • 0
      • DLLs
      • UuidCreate
      • UuidCreateSequential
      • FindWindow
      • GetClipboardData
    • secur32
      • GetThreadContext
      • InitializeSecurityContext
      • LsaCallAuthenticationPackage
      • LsaEnumerateLogonSessions
      • LsaLogonUser
      • HomePage
      • LoadLibrary
    • setupapi
      • CM_Get_Device_ID
      • CM_Get_Device_IDA
      • CM_Get_Parent
      • DeviceHandle
      • SetupCopyOEMInf
      • SetupDiCallClassInstaller
      • SetupDiClassGuidsFromName
      • SetupDiClassNameFromGuid
      • SetupDiDestroyDeviceInfoList
      • SetupDiEnumDeviceInfo
      • SetupDiEnumDeviceInterfaces
      • SetupDiGetClassDevs
      • SetupDiGetDeviceInstallParams
      • SetupDiGetDeviceInstanceId
      • SetupDiGetDeviceInterfaceDetail
      • SetupDiGetDeviceRegistryProperty
      • SetupDiOpenClassRegKeyEx
      • SetupDiSetClassInstallParams
      • SetupFindFirstLine
      • SetupFindNextMatchLine
      • SetupUninstallOEMInf
      • OpenProcess
      • ReadProcessMemory
      • StopWatch
      • StringBuilder
    • shell32
      • API
      • APPBARDATA
      • CSIDL
      • VB6
      • CommandLineToArgvW
      • DLLGETVERSIONINFO
      • VirtualProtect
      • VirtualQueryEx
      • ExtractAssociatedIcon
      • ExtractIcon
      • ExtractIconEx
      • FileSystemWatcher
      • HChangeNotifyEventID
      • HChangeNotifyFlags
      • WR5SmA
      • ITaskbarList
      • ITaskbarList2
      • ITaskbarList3
      • C# Signature:
      • User-Defined Types:
      • PickIconDlg
      • SHAddToRecentDocs
      • SHAppBarMessage
      • SHBindToParent
      • SHBrowseForFolder
      • SHCNRF
      • SHChangeNotify
      • SHChangeNotifyRegister
      • SHCreateDirectoryEx
      • SHCreateItemFromIDList
      • SHCreateItemFromParsingName
      • SHCreateItemWithParent
      • WriteFile
      • SHEmptyRecycleBin
      • SHFileOperation
      • SHFormatDrive
      • C# Signature:
      • SHGetDesktopFolder
      • SHGetFileInfo
      • SHGetFolderPath
      • SHGetImageList
      • SHGetKnownFolderPath
      • SHGetNameFromIDList
      • SHGetRealIDL
      • SHGetSpecialFolderLocation
      • SHGetStockIconInfo
      • C# Signature:
      • SHParseDisplayName
      • SHQueryRecycleBin
      • SHSetKnownFolderPath
      • SHSetUnreadMailCount
      • ShellExecute
      • ShellExecuteEx
      • Shell_NotifyIcon
      • THUMBBUTTON
      • WriteProcessMemory
      • begerw4224sda3r
      • coredll
      • kernel32
    • shlwapi
      • AssocQueryString
      • obfuscate-pinvoke-150x300
      • IsOS
      • PathCanonicalize
      • PathCombine
      • PathCompactPath
      • PathCompactPathEx
      • SHAutoComplete
      • SHMessageBoxCheck
      • UrlCreateFromPath
      • swd
      • user32
    • twain_32
      • yArra
    • unicows
      • HomePage
    • urlmon
      • CoInternetSetFeatureEnabled
      • CopyMemory
      • FindMimeFromData
      • Structures
      • URLDownloadToFile
      • UrlMkGetSessionOption
      • javascript
      • HomePage
      • javascript
    • user32
      • 123
      • ActivateKeyboardLayout
      • AdjustWindowRect
      • AlphaWindow
      • AnimateWindow
      • AppendMenu
      • AttachThreadInput
      • BeginDeferWindowPos
      • BeginPaint
      • obfuscate-pinvoke-150x300
      • BringWindowToTop
      • C# Signature:
      • C# Signature:
      • _ContentBaseDefinition
      • ChangeDisplaySettings
      • ChangeDisplaySettingsEx
      • ChangeDisplaySettingsFlags
      • ClientRectangle
      • ClientToScreen
      • ClipCursor
      • CloseHandle
      • C# Signature:
      • CopyIcon
      • C# Signature:
      • CreateCaret
      • CreateDesktop
      • CreateIcon
      • CreateIconFromResourceEx
      • CreateIconIndirect
      • CreatePopupMenu
      • C# Signature:
      • javascript
      • Curseur
      • DefWindowProc
      • DeferWindowPos
      • DestroyWindow
      • DrawAnimatedRects
      • HomePage
      • C# Signature:
      • C# Signature:
      • EmptyClipboard
      • EnumChildWindows
      • _ContentBaseDefinition
      • EnumDesktops
      • EnumDisplayDevices
      • EnumDisplayMonitors
      • EnumDisplaySettings
      • EnumDisplaySettingsEx
      • EnumProc
      • EnumReport
      • javascript
      • ExitWindowsEx
      • FillRect
      • FindWindowA
      • FindWindowEx
      • Flags
      • FlashTest
      • FlashWindow
      • FlashWindowEx
      • GetActiveWindow
      • GetAltTabInfo
      • GetAsyncKeyState
      • GetClassInfo
      • GetClassInfoEx
      • GetClassName
      • GetClientRect
      • GetComboBoxInfo
      • GetCurrentThread
      • GetCursor
      • GetCursorPos
      • GetDC
      • GetDesktopWindow
      • GetForegroundwindow
      • GetKeyState
      • GetKeyboardLayoutList
      • GetLastInputInfo
      • GetMenu
      • GetMenuItemInfo
      • GetMenuString
      • GetMessage
      • GetMessageExtraInfo
      • HomePage
      • GetMonitorInfo
      • GetMouseMovePointsEx
      • _ContentBaseDefinition
      • GetRawInputData
      • GetRawInputDeviceInfo
      • GetRawInputDeviceList
      • GetScrollBarInfo
      • GetScrollPos
      • GetSystemMenu
      • GetSystemMetrics
      • GetWindow
      • javascript
      • GetWindowDC
      • GetWindowInfo
      • GetWindowLong
      • GetWindowLongPtr
      • GetWindowModuleFileName
      • GetWindowPlacement
      • GetWindowPos
      • GetWindowRgn
      • GetWindowTex
      • _ContentBaseDefinition
      • GetWindowThreadProcessId
      • HandleRef
      • HomePage
      • HelloWin
      • HideCaret
      • _ContentBaseDefinition
      • IntPtr
      • InvalidateRect
      • IsCharAlpha
      • IsCharLower
      • IsIconic
      • IsWindowEnabled
      • KeyboardKey
      • KeyboardProc
      • LoadCursor
      • LoadCursorFromFile
      • LoadIcon
      • LoadImage
      • LockWorkStation
      • C# Definition:
      • MapVirtualKeyEx
      • MessageBeep
      • MessageBox
      • C# Signature:
      • C# Signature:
      • MessageBoxTimeout
      • C# Definition:
      • MoveWindow
      • NativeMethods
      • OpenIcon
      • a&gt
      • OpenWindowStation
      • PeekMessage
      • PostMessage
      • C# Signature:
      • PresentationFramework
      • PrintWindow
      • PropSheet
      • ReadProcessMemory
      • RealGetWindowClass
      • RegisterClass
      • C# Signature:
      • RegisterDeviceNotification
      • RegisterHotKey
      • javascript
      • RegisterPowerSettingNotification
      • RegisterRawInputDevices
      • RegisterTouchWindow
      • ReleaseDC
      • RemoveClipboardFormatListener
      • HomePage
      • SB_GETTEXT
      • SendDlgItemMessage
      • SendInput
      • SendMessage
      • C# Signature:
      • SendMessageTimeout
      • SetActivewindow
      • C# Signature:
      • SetCursor
      • SetCursorPos
      • SetFocus
      • SetForegroundWindow
      • SetKeyboardState
      • _ContentBaseDefinition
      • SetProcessDPIAware
      • C# Signature:
      • SetWinEventHook
      • SetWindowDisplayAffinity
      • SetWindowLong
      • SetWindowLongPtr
      • SetWindowPlacement
      • SetWindowPos
      • SetWindowRgn
      • SetWindowsHookEx
      • ShellProc
      • ShowWindow
      • ShowWindowAsync
      • ShowWithoutActivation
      • SwapMouseButton
      • SwitchToThisWindow
      • SystemIcons
      • javascript
      • TCITEM
      • C# Signature:
      • TileWindows
      • TrackMouseEvent
      • TrackPopupMenuEx
      • TranslateMessage
      • HomePage
      • UIntPtr
      • UIntrPtr
      • UnhookWindowsHookEx
      • UnregisterClass
      • UpdateLayeredWindow
      • VkKeyScan
      • VkKeyScanEx
      • WaitForInputIdle
      • _ContentBaseDefinition
      • WindowFromPoint
      • WindowsAPI
      • WindowsApplication1
      • javascript
      • javascript
      • cards
      • CoLoadLibrary
      • Constants
      • Enums
      • HomePage
      • StgOpenStorageEx
      • enumwindows
      • Structures
      • findwindow
      • getkeyboardstate
      • getwindowrect
      • _ContentBaseDefinition
      • mouse_event
      • javascript
      • ole32
      • HomePage
      • saa
      • sdfasdfasdfa
      • setlayeredwindowattributes
      • _ContentBaseDefinition
      • javascript
      • HomePage
      • _ContentBaseDefinition
      • javascript
      • _ContentBaseDefinition
      • wow
      • C# Signature:
    • userenv
      • CreateEnvironmentBlock
      • CreateProfile
      • GetAppliedGPOList
      • GetProfilesDirectory
      • GetUserProfileDirectory
      • LoadUserProfile
      • C# Signature:
      • javascript
      • HomePage
    • uxtheme
      • CloseThemeData
      • DrawThemeText
      • GetThemeAppProperties
      • GetThemeFilename
      • GetThemeInt
      • GetThemePosition
      • GetThemePropertyOrigin
      • GetThemeSysBool
      • GetUserColorPreference
      • GetWindowTheme
      • HitTestThemeBackground
      • _ContentBaseDefinition
      • OpenThemeData
      • OpenThemeFile
      • SetSystemVisualStyle
      • SetUserColorPreference
      • javascript
      • _ContentBaseDefinition
    • wer
      • _ContentBaseDefinition
    • winfax
      • FaxEnableRoutingMethod
      • FaxSetJob
      • _ContentBaseDefinition
      • javascript
    • winhttp
      • WINHTTP_CURRENT_USER_IE_PROXY_CONFIG
      • WinHttpCloseHandle
      • WinHttpGetProxyForUrl
      • _ContentBaseDefinition
    • wininet
      • FtpCreateDirectory
      • FtpFindFirstFile
      • FtpGetFile
      • javascript
      • VB Signature:
      • INTERNET_FLAG_RELOAD
      • InternetCloseHandle
      • InternetConnect
      • InternetFindNextFile
      • C# Signature:
      • _ContentBaseDefinition
      • internetsetoption
      • javascript
    • winmm
      • HomePage
      • LD83
      • MIDIHDR
      • MMRESULT
      • MixerGetDevCaps
      • MixerGetID
      • MixerGetLineControls
      • C# Signature:
      • MixerSetControlDetails
      • _ContentBaseDefinition
      • WIMMessages
      • Constants
      • HomePage
      • mciSendString
      • midiInGetDevCaps
      • C# Signature:
      • midiOutGetDevCaps
      • midiOutLongMsg
      • midiOutOpen
      • midiStreamClose
      • midiStreamOut
      • mixerGetControlDetails
      • mixerGetLineInfo
      • mixerOpen
      • timeSetEvent
      • waveInReset
      • waveInUnprepareHeader
      • waveOutGetDevCaps
      • VB Signature:
      • waveOutOpen
      • waveOutPrepareHeader
    • winscard
      • Structures
      • SCardConnect
      • SCardDisconnect
      • SCardEstablishContext
      • SCardGetAttrib
      • SCardListReaders
      • SCardReleaseContext
      • WinSCard
      • _ContentBaseDefinition
      • javascript
      • scardtransmit
    • winspool
      • C# Signature:
      • DeleteMonitor
      • DocumentProperties
      • EnumJobs
      • EnumPorts
      • EnumPrintProcessorDatatypes
      • EnumPrinters
      • GetDefaultPrinter
      • C# Signature:
      • C# Signature:
      • C# Signature:
      • GetPrinterDriverDir
      • HomePage
      • ResetPrinter
      • SetDefaultPrinter
      • SetJob
      • StartDocPrinter
      • _ContentBaseDefinition
      • javascript
    • wintrust
      • IsCatalogFile
      • WinVerifyTrust
      • _ContentBaseDefinition
    • winusb
      • C# Signature:
      • WinUsb_QueryDeviceInformation
    • wlanapi
      • EapHostPeerInvokeConfigUI
      • coredll
      • WlanConnect
      • WlanDeleteProfile
      • WlanGetProfileList
      • WlanScan
      • WlanSetProfileList
      • javascript
    • ws2_32
      • INTERFACE_INFO
      • InetNtop
      • User-Defined Types:
      • WSAAddressToString
      • WSAGetLastError
      • WSAPROTOCOL_INFO
      • WSASocket
      • WSAStringToAddress
      • bind
      • connect
      • inet_pton
      • kernel32
      • recv
      • send
    • wtsapi32
      • CharSet
      • WTSEnumerateProcesses
      • WTSOpenServer
      • WTSSendMessage
      • WTS_PROCESS_INFO
      • ERazMA
      • ExtendedFileInfo
    • xolehlp
      • HomePage
  • directory
    • constants
      • SHCreateProcessAsUserW
      • CB_
      • _ContentBaseDefinition
      • coredll
      • javascript
      • user32
      • ERROR_ACCESS_DENIED
      • GUID_DEVINTERFACE
      • GUID_DEVINTERFACE_DISK
      • GUID_DEVINTERFACE_HUBCONTROLLER
      • GUIDs
      • HWND
      • VB Constants:
      • HomePage
      • IDC_
      • VB Constants:
      • VB Constants:
      • VB Constants:
      • VB Constants:
      • VB Constants:
      • VB Constants:
      • VB Constants:
      • IMAGE_
      • INVALID_HANDLE_VALUE
      • IOCTL_GET_HCD_DRIVERKEY_NAME
      • IOCTL_STORAGE_GET_DEVICE_NUMBER
      • IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION
      • IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
      • _ContentBaseDefinition
      • javascript
      • HomePage
      • _ContentBaseDefinition
      • IOCTL_USB_GET_ROOT_HUB_NAME
      • LR_
      • MAPI
      • MAX_PATH
      • OPEN_EXISTING
      • PROPERTYKEY
      • RB
      • SECURITY_MANDATORY
      • C# Constants:
      • SW
      • ShellAPI
      • UInt32
      • HomePage
      • USB_NODE_CONNECTION_INFORMATION
      • Important Note about .NET and Win32 error-code reading:
      • VB6
      • Win32ErrorCodes
      • WinNT
    • delegates
      • BrowseCallbackProc
      • C# Definition:
      • EnumWindowsProc
      • _ContentBaseDefinition
      • HookProc
      • LowLevelKeyboardProc
      • LowLevelMouseProc
      • MsgBoxCallback
      • WndProc
      • javascript
    • enums
      • ACCESS_MASK
      • ACEs
      • ADDRESS_FAMILIES
      • AutoCompleteFlags
      • BrowseInfoFlags
      • CHUNKSTATE
      • CHUNK_BREAKTYPE
      • CLSCTX
      • C# Definition:
      • CREDUI_FLAGS
      • ClassStyles
      • C# Definition:
      • C# Definition:
      • Boshit
      • CREATE_GAY
      • CreateWindowStation
      • CryptProtectPromptFlags
      • DIB_Color_Mode
      • DrawCaption
      • C# Definition:
      • C# Definition:
      • C# Definition:
      • C# Definition:
      • DOCHOSTUITYPE
      • DWMWINDOWATTRIBUTE
      • DisplayDeviceStateFlags
      • DwmGetWindowAttribute
      • DwmSetWindowAttribute
      • FILEOP_FLAGS
      • FILE_INFO_BY_HANDLE_CLASS
      • FINDEX_INFO_LEVELS
      • FINDEX_SEARCH_OPS
      • FileFuncFlags
      • FileMapAccessType
      • GetClipboardDataFlags
      • GetObjectOptions
      • EnumDesktopWindows
      • EnumYoMama
      • GetModuleHandleW
      • IFILTER_FLAGS
      • IFILTER_INIT
      • IFilterReturnCodes
      • InternetGetConnectedStateFlags
      • Job_Control
      • KeyFlags
      • C# Definition:
      • LoadLibraryFlags
      • LocalMemoryFlags
      • MEDIA_TYPE
      • MIB_TCP_STATE
      • MessageBoxOptions
      • MessageBoxResult
      • MoveFileFlags
      • NET_API_STATUS
      • C# Definition:
      • OLECMDEXECOPT
      • OLECMDF
      • OLECMDID
      • OpenFile
      • OpenSaveFileDialgueFlags
      • PARTITION_TYPE
      • POWER_ACTION
      • C# Definition:
      • GetNextWindow
      • PageProtection
      • PrinterEnumFlags
      • ProcessAccess
      • GetWindowContextHelpId
      • GetWindowText
      • ResourceDisplaytype
      • ResourceScope
      • Hello
      • SC_ACTION_TYPE
      • SERVICE_ACCESS
      • SERVICE_TYPES
      • SFGAOF
      • SHCNE
      • SHCNF
      • SHGSI
      • SHSTOCKICONID
      • SIIGBF
      • SLR_FLAGS
      • SPI
      • SPIF
      • STARTF
      • STGM
      • SYMBOLIC_LINK_FLAG
      • SendMessageTimeoutFlags
      • SetWindowPosFlags
      • ShareType
      • ShowWindowCommand
      • ShowWindowCommands
      • SizingWindowSide
      • SnapshotFlags
      • StgmConstants
      • SystemMetric
      • HomePage
      • TOKEN_ELEVATION_TYPE
      • TOKEN_INFORMATION_CLASS
      • TOKEN_TYPE
      • TernaryRasterOperations
      • ThemeAppProperties
      • OpenProcess
      • USB_CONNECTION_STATUS
      • USB_DEVICE_SPEED
      • VARENUM
      • VK
      • VirtualKeys
      • WTSINFO
      • WaveHdrFlags
      • WinUser
      • WindowHitTestRegions
      • WindowLongFlags
      • WindowStyles
      • WindowStylesEx
      • WindowsMessages
      • RegisterHotKeyaspx
      • RsDsz
    • interfaces
      • ActiveX
      • DWebBrowserEvents2
      • SetParent
      • IAccessibleObject
      • IActiveDesktop
      • IAdviseSink
      • SystemParametersInfo
      • TransparencyKey
      • IBindStatusCallback
      • IBinding
      • ICatInformation
      • ICatRegister
      • IClassFactory
      • IClassFactory2
      • IContextMenu
      • IContextMenu2
      • IContextMenu3
      • C# Definition:
      • ICustomDoc
      • C# Definition:
      • IDeskBand
      • IDeskBand2
      • IDocHostShowUI
      • IDocHostUIHandler
      • IDocHostUIHandler2
      • IEnumCATEGORYINFO
      • C# Definition:
      • IEnumGUID
      • WinHelp
      • IEnumSTATPROPSTG
      • Yegor
      • IEnumUnknown
      • IEnumWIA_DEV_INFO
      • IExtractIcon
      • IExtractImage
      • IFilter
      • IGlobalInterfaceTable
      • C# Signature:
      • IInternetBindInfo
      • IInternetProtocol
      • IInternetProtocolRoot
      • IInternetProtocolSink
      • IInternetSecurityManager
      • IInternetZoneManager
      • ILockBytes
      • IMalloc
      • IObjectSafety
      • IObjectWithSite
      • _ContentBaseDefinition
      • IOleCommandTarget
      • IOleDocumentSite
      • cbcb
      • code
      • IPersist
      • coredll
      • IPersistStream
      • IPropertyBag
      • IPropertyNotifySink
      • C# Definition:
      • IPropertyStore
      • IProvideClassInfo
      • IQueryInfo
      • IRichEditOle
      • death
      • IShellBrowser
      • IShellExtInit
      • IShellFolder
      • dll
      • IShellItem
      • IShellItemArray
      • IShellItemImageFactory
      • eqPM4
      • IShellLinkA
      • IShellLinkW
      • kernel32
      • mypage
      • IStorage
      • obfuscate-pinvoke-150x300
      • IThumbnailProvider
      • ITravelLogEntry
      • ITravelLogStg
      • ITrayDeskband
      • IUnknown
      • IViewObject
      • IWebBrowser
      • IWebBrowser2
      • IWiaItem
      • IWiaPropertyStorage
      • JavaScript
      • Joe
      • SHDocVw
      • C# Definition:
      • WebBrowser
      • patrick
      • sounds
      • pageIShellLinkA_doc
    • structures
      • ACL_REVISION_INFORMATION
      • ACL_SIZE_INFORMATION
      • ADAPTER_STATUS
      • ANIMATIONINFO
      • AVISTREAMINFO
      • AudioLineStatus
      • C# Definition:
      • BITMAPFILEHEADER
      • BITMAPINFO
      • BITMAPINFOHEADER
      • BLENDFUNCTION
      • sucuni
      • BY_HANDLE_FILE_INFORMATION
      • Bluetooth_Find_Radio_Params.
      • Bluetooth_Find_Radio_Params
      • tree
      • CATEGORYINFO
      • CAUUID
      • CEOSVERSIONINFO
      • CERT_CONTEXT
      • CHANGEFILTERSTRUCT
      • CHARFORMAT2
      • CHARRANGE
      • CIDA
      • CMINVOKECOMMANDINFO
      • use32
      • COLORREF
      • COMDLG_FILTERSPEC
      • COMMPROP
      • CONDITION_VARIABLE
      • CREATESTRUCT
      • C# Definition:
      • C# Definition:
      • user32
      • why
      • CreateProcessWithTokenW
      • _ContentBaseDefinition
      • C# Definition:
      • DESKBANDINFO
      • DEVMODE
      • DFS_INFO_4
      • DHCP_CLIENT_INFO_ARRAY
      • DISK_GEOMETRY
      • DISPLAY_DEVICE
      • DOMAIN_CONTROLLER_INFO
      • DSROLE_PRIMARY_DOMAIN_INFO_BASIC
      • DS_DOMAIN_CONTROLLER_INFO_2
      • DWM_BLURBEHIND
      • C# Definition:
      • C# Definition:
      • javascript
      • FILEDESCRIPTOR
      • FILETIME
      • FILE_ID_BOTH_DIR_INFO
      • FILTERREGION
      • FORMATETC
      • FULLPROPSPEC
      • GLOBAL_MACHINE_POWER_POLICY
      • HomePage
      • _ContentBaseDefinition
      • GUID
      • GuidClass
      • HARDWAREINPUT
      • HitTestValues
      • javascript
      • ICMP_ECHO_REPLY
      • ICONINFO
      • IMAGEINFO
      • IMAGELISTDRAWPARAMS
      • IMAGE_DATA_DIRECTORY
      • IMAGE_DOS_HEADER
      • IMAGE_EXPORT_DIRECTORY
      • IMAGE_FILE_HEADER
      • IMAGE_NT_HEADERS
      • IMAGE_OPTIONAL_HEADER32
      • IMAGE_OPTIONAL_HEADER64
      • _ContentBaseDefinition
      • INPUT
      • _ContentBaseDefinition
      • INSTALLERINFO
      • INTLIST
      • IP_ADAPTER_INFO
      • IP_OPTION_INFORMATION
      • ITEMIDLIST
      • javascript
      • KERNINGPAIR
      • KEYBDINPUT
      • LANA_ENUM
      • LASTINPUTINFO
      • C# Definition:
      • LOGFONT
      • LUID
      • LUID_AND_ATTRIBUTES
      • LayoutKind
      • MAPI
      • MARGINS
      • MEMORY_BASIC_INFORMATION
      • MENUITEMINFO
      • MIB_TCP6ROW_OWNER_PID
      • MIB_TCP6TABLE_OWNER_PID
      • MIB_TCPROW_OWNER_PID
      • MIB_TCPTABLE_OWNER_PID
      • MIIM
      • MIXERLINE
      • javascript
      • MIXERLINETARGET
      • MOUSEINPUT
      • MOUSE_EVENT_RECORD
      • MSG
      • MSGBOXPARAMS
      • MSLLHOOKSTRUCT
      • C# Definition:
      • HomePage
      • _ContentBaseDefinition
      • NAME_BUFFER
      • NCB
      • C# Definition:
      • OBJECTDESCRIPTOR
      • OPENFILENAME
      • OSVERSIONINFO
      • OSVERSIONINFOEX
      • C# Definition:
      • PAINTSTRUCT
      • PARTITION_INFORMATION
      • PIXELFORMATDESCRIPTOR
      • POINT
      • javascript
      • PRINTER_INFO_2
      • PROCESS_BASIC_INFORMATION
      • PROCESS_EXTENDED_BASIC_INFORMATION
      • HomePage
      • RASDIALEXTENSIONS
      • RASDIALPARAMS
      • RASENTRY
      • RASENTRYNAME
      • PlaySound
      • _ContentBaseDefinition
      • REOBJECT
      • REPARSE_DATA_BUFFER
      • C# Definition:
      • SECURITY_ATTRIBUTES
      • SECURITY_DESCRIPTOR
      • SHARE_INFO_502
      • javascript
      • HomePage
      • SHFILEOPSTRUCT
      • SHSTOCKICONINFO
      • SID
      • SIZE
      • _ContentBaseDefinition
      • SOLE_AUTHENTICATION_SERVICE
      • SP_DEVICE_INTERFACE_DATA
      • javascript
      • SP_DEVINFO_DATA
      • STARTUPINFOEX
      • STATPROPSETSTG
      • STAT_CHUNK
      • C# Definitions:
      • STORAGE_DEVICE_NUMBER
      • STRRET
      • SYSTEMTIME
      • SYSTEM_INFO
      • ScsiPassThrough
      • HomePage
      • SetServiceStatus
      • SetupApi
      • SetupDiEnumDeviceInterfaces
      • SockAddr
      • StartupInfo
      • TBBUTTON
      • TCP_TABLE_CLASS
      • TEXTMETRIC
      • TOKEN_PRIVILEGES
      • TableClass
      • TrackMouseEvent
      • C# Definition:
      • USB_DESCRIPTOR_REQUEST
      • USB_DEVICE_DESCRIPTOR
      • USB_HCD_DRIVERKEY_NAME
      • USB_HUB_DESCRIPTOR
      • USB_HUB_INFORMATION
      • USB_NODE_CONNECTION_DRIVERKEY_NAME
      • USB_NODE_CONNECTION_INFORMATION_EX
      • USB_NODE_CONNECTION_NAME
      • USB_NODE_INFORMATION
      • USB_ROOT_HUB_NAME
      • USB_STRING_DESCRIPTOR
      • VirtualQuery
      • WAVEFORMATEX
      • WAVEHDR
      • _ContentBaseDefinition
      • WIN32_FIND_DATA
      • WINDOWINFO
      • WINDOWPLACEMENT
      • kernel32
      • WLAN_INTERFACE_INFO
      • WLAN_PROFILE_INFO_LIST
      • WNDCLASS
      • WNDCLASSEX
      • addrinfo
      • _ContentBaseDefinition
      • HomePage
      • _ContentBaseDefinition
      • in6_addr
      • javascript
      • HomePage
      • _ContentBaseDefinition
      • javascript
      • sockaddr_gen
      • sockaddr_in
      • sockaddr_in6
      • javascript
Con tecnología de GitBook
En esta página
  • C# Definition:
  • VB Definition:
  • C# Definition:
  • C# Definition:
  • C# Definition:
  • C# Definition:
  • C# Definition:
  • C# Definition:
  • C# Definition:
  1. directory
  2. interfaces

IOleCommandTarget

C# Definition:

//IMPORTANT: The order of the methods is critical here. You
    //perform early binding in most cases, so the order of the methods
    //here MUST match the order of their vtable layout (which is determined
    //by their layout in IDL). The interop calls key off the vtable 
    //ordering, not the symbolic names. Therefore, if you switched these 
    //method declarations and tried to call the Exec method on an 
    //IOleCommandTarget interface from your application, it would 
    //translate into a call to the QueryStatus method instead.
    void QueryStatus(
        ref Guid pguidCmdGroup, 
        UInt32 cCmds,
        [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] OLECMD[] prgCmds, 
        ref OLECMDTEXT CmdText);
    void Exec(
        ref Guid pguidCmdGroup, 
        uint nCmdId, 
        uint nCmdExecOpt, 
        ref object pvaIn, 
        ref object pvaOut);

VB Definition:

<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface IOleCommandTarget
   TODO
End Interface

C# Definition:

[StructLayout(LayoutKind.Sequential)]
    public struct OLECMD
    {
        //public UInt32 cmdID;
        //public UInt64 cmdf;
        public uint cmdID;
        public uint cmdf;    // NB: See above note (*)    
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct OLECMDTEXT
    {
        public UInt32 cmdtextf;
        public UInt32 cwActual;
        public UInt32 cwBuf;
        public char rgwz;
    }

    [ComImport, Guid("b722bccb-4e68-101b-a2bc-00aa00404770"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IOleCommandTarget
    {

        //IMPORTANT: The order of the methods is critical here. You
        //perform early binding in most cases, so the order of the methods
        //here MUST match the order of their vtable layout (which is determined
        //by their layout in IDL). The interop calls key off the vtable
        //ordering, not the symbolic names. Therefore, if you switched these
        //method declarations and tried to call the Exec method on an
        //IOleCommandTarget interface from your application, it would
        //translate into a call to the QueryStatus method instead.
        [PreserveSig()]
        int QueryStatus([In, MarshalAs(UnmanagedType.Struct)] ref Guid pguidCmdGroup, [MarshalAs(UnmanagedType.U4)] int cCmds, [In, Out]IntPtr prgCmds, [In, Out] IntPtr pCmdText);

        [PreserveSig()]
        int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdExecOpt, object[] pvaIn, [In, Out, MarshalAs(UnmanagedType.LPArray)] object[] pvaOut);
    }

C# Definition:

//This attribute demands that all classes derived from the parent class have the specified permission.
    [SecurityPermission(SecurityAction.LinkDemand),
    SecurityPermission(SecurityAction.InheritanceDemand)]

    /// <summary>
    /// This class' methods wrap the IOLE commands.
    /// </summary>
    /// <purpose>
    /// The class makes the calls to functions that handle going from
    /// managed code to native code. The class shows the implementation necessary
    /// for using IOLE Commands.
    /// </purpose>
    public class NativeCommands
    {
        private FormControl _infoPathControl;

        protected const int QUERYFAILED = -1;
        private string lastCommandExecuted;

        /// <summary>
        /// returns the last command that was executed.
        /// </summary>
        public string LastCommandExecuted
        {
            get
            {
                return lastCommandExecuted;
            }
        }

        /// <summary>
        /// InfoPath Form Control object
        /// </summary>
        public FormControl InfoPathControl
        {
            get
            {
                return _infoPathControl;
            }
            set
            {
                _infoPathControl = value;
            }
        }

        #region Structures
        /// <summary>
        /// Struture passed as prgCmds parameter in the QueryStatus method
        /// This structure holds the command to be queried and the result of the query
        /// </summary>
        [StructLayout(LayoutKind.Sequential)]
        public struct OLECMD
        {
            /// <summary>
            /// Command to be queried
            /// </summary>
            private uint cmdID;

            /// <summary>
            /// Result of the query
            /// </summary>
            private uint cmdf;

            /// <summary>
            /// Gets or sets the command to be queried.
            /// </summary>
            public uint CmdId
            {
                get
                {
                    return cmdID;
                }

                set
                {
                    cmdID = value;
                }
            }

            public uint CmdF
            {
                get
                {
                    return cmdf;
                }

                set
                {
                    cmdf = value;
                }
            }
        }
        #endregion

        #region Interfaces

        //import the IOLECommandTarget interface to perform IOLE commands
        //IOLECommandTarget is registered in the registry
        [
        ComImport,
        Guid("B722BCCB-4E68-101B-A2BC-00AA00404770"),
        InterfaceType(ComInterfaceType.InterfaceIsIUnknown)
        ]
        private interface IOleCommandTarget
        {
            /// <summary>
            /// Checks to see if a given command can be executed
            /// </summary>
            /// <param name="pguidCmdGroup">Unique identifier of the command group, NULL to specify the standard group</param>
            /// <param name="cCmds">The number of commands in the prgCmds array</param>
            /// <param name="prgCmds">Array of OLECMD structures that indicate the commands status information is required</param>
            /// <param name="pCmdText">Pointer to name or status of command, NULL indicates this is not necessary</param>
            void QueryStatus(ref Guid pguidCmdGroup, uint cCmds, [MarshalAs(UnmanagedType.LPArray), In, Out] OLECMD[] prgCmds, IntPtr pCmdText);

            /// <summary>
            /// Executes a specified command
            /// </summary>
            /// <param name="pguidCmdGroup">Command group</param>
            /// <param name="nCmdID">Identifier of command to execute</param>
            /// <param name="nCmdExecOpt">Options for executing the command</param>
            /// <param name="pvaIn">Input arguments</param>
            /// <param name="pvaOut">Command output</param>
            void Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdExecOpt, ref object pvaIn, ref object pvaOut);
        }

        #endregion

        #region Enums

        /// <summary>
        /// Designates the type of support provided by an object for the specified command
        /// </summary>
        [FlagsAttribute]
        public enum OleCmdf
        {
            /// <summary>
            /// The command is supported by this object
            /// </summary>
            Supported = 1,
            /// <summary>
            /// The command is available and enabled
            /// </summary>
            Enabled = 2,
            /// <summary>
            /// The command is an on-off toggle and is currently on
            /// </summary>
            Latched = 4,
            /// <summary>
            /// Reserved for future use
            /// </summary>
            Ninched = 8
        }

        #endregion

        #region Query Status
        /// <summary>
        /// Queries whether or not a command can be executed
        /// </summary>
        /// <param name="commandID">ID number of the command to query</param>
        /// <returns>True if command can be performed and false if it cannot</returns>
        public bool QueryCommandStatus(FormControlCommandIds.CommandIds commandId)
        {
            //Create an array for the OLECMD
            OLECMD[] commands = new OLECMD[1];
            commands[0].CmdId = Convert.ToUInt16(commandId,CultureInfo.CurrentCulture);
            commands[0].CmdF = 0;

            QueryCommandStatus(commands);

            //if command is supported and enabled command can be executed
            return (((commands[0].CmdF & (uint)OleCmdf.Supported) != 0) && ((commands[0].CmdF & (uint)OleCmdf.Enabled) != 0));
        }

        /// <summary>
        /// Queries whether or not a command can be executed
        /// </summary>
        /// <param name="commands">Group of commands to be queried</param>
        public void QueryCommandStatus(OLECMD[] commands)
        {
            //Get a IOLECommandTarget object form the ActiveX control
            IOleCommandTarget commandTarget = _infoPathControl.GetOcx() as IOleCommandTarget;

            try
            {
                commandTarget.QueryStatus(ref FormControlCommandIds.CommandGroup, Convert.ToUInt16(commands.Length), commands, IntPtr.Zero);
            }
            catch (Exception ex)
            {
                throw new HostedException("An error occurred while attempting to query commands", ex);
            }
        }
        #endregion

        #region Command Execution

        /// <summary>
        /// Checks whether or not the specified command is on or off
        /// </summary>
        /// <param name="commandID">Command to be executed</param>
        /// <returns>True if command is activated or False if not</returns>
        public bool IsCommandOn(FormControlCommandIds.CommandIds commandId)
        {
            //Create an array for the OLECMD
            OLECMD[] commands = new OLECMD[1];
            commands[0].CmdId = Convert.ToUInt16(commandId,CultureInfo.CurrentCulture);
            commands[0].CmdF = 0;

            QueryCommandStatus(commands);

            return (((commands[0].CmdF & (uint)OleCmdf.Supported) != 0) && ((commands[0].CmdF & (uint)OleCmdf.Enabled) != 0) &&
                ((commands[0].CmdF & (uint)OleCmdf.Latched) != 0));
        }

        /// <summary>
        /// Executes a given command
        /// </summary>
        /// <param name="CommandID">Command to be executed</param>
        /// <returns>Results of executing a command</returns>
        public object ExecuteCommand(FormControlCommandIds.CommandIds commandId)
        {
            return ExecuteCommand(commandId, null);
        }

        /// <summary>
        /// Executes a given command with specified parameters
        /// </summary>
        /// <param name="CommandID">Command to be executed</param>
        /// <param name="vaIn">Input Arguments</param>
        /// <returns>Results of executing the command</returns>
        public object ExecuteCommand(FormControlCommandIds.CommandIds commandId, object vaIn)
        {
            //remember the last command executed
            lastCommandExecuted = commandId.ToString();

            //indicates to Exec call to do the default option
            const int EXECUTE_OPTION_DO_DEFAULT = 0;

            //holds the return result
            object vaOut = null;

            //make sure the command can be executed first
            if (!QueryCommandStatus(commandId))
            {
                return QUERYFAILED;
            }

            // Get the commandTarget from the control
            IOleCommandTarget commandTarget = _infoPathControl.GetOcx() as IOleCommandTarget;

            try
            {
                commandTarget.Exec(ref FormControlCommandIds.CommandGroup, Convert.ToUInt16(commandId,CultureInfo.CurrentCulture),
                    EXECUTE_OPTION_DO_DEFAULT, ref vaIn, ref vaOut);
                return vaOut;
            }
            catch (Exception ex)
            {
                throw new HostedException("An error occurred while executing command " + commandId.ToString(), ex);
            }
        }
        #endregion

    }

C# Definition:

//This attribute demands that all classes derived from the parent class have the specified permission.
    [SecurityPermission(SecurityAction.LinkDemand),
    SecurityPermission(SecurityAction.InheritanceDemand)]

    /// <summary>
    /// The class makes calls to perform commands against the form control
    /// </summary>
    /// <purpose>
    /// Class is designed to be a central point for executing commands against a form control
    /// In order to use this class a user must provide an instance of a form control.
    /// </purpose>
    public class FormController : NativeCommands
    {
        #region Constructors
        /// <summary>
        /// Commands
        /// </summary>
        public FormController(FormControl parentInfoPathInstance)
        {
            if (parentInfoPathInstance != null)
            {
                InfoPathControl = parentInfoPathInstance;
            }
            else
            {
                InfoPathControl = new FormControl();
            }
        }
        #endregion

        #region Enums and Structs
        /// <summary>
        /// Enumeration of the Interaction type  This will allow different
        /// code paths to be triggered for an action
        /// </summary>
        public enum InteractionType
        {
            /// <summary>
            /// Uses the InfoPath OM
            /// </summary>
            OM = 0,
            /// <summary>
            /// Uses the supported InfoPath IOLECommand
            /// </summary>
            IOLE = 1,
        }

        /// <summary>
        /// Defines the directions a table can have
        /// </summary>
        public struct TableDirectionValues
        {
            public const string NODIRECTION = "none";
            public const string RIGHTTOLEFT = "RTL";
            public const string LEFTTORIGHT = "LTR";
        }

        /// <summary>
        /// Defines the horizontal alignment values for a table
        /// </summary>
        public struct TableHorizontalAlignmentValues
        {
            public const string LEFT = "left";
            public const string CENTER = "center";
            public const string RIGHT = "right";
        }

        /// <summary>
        /// Defines the vertical alignment values for a table
        /// </summary>
        public struct TableVerticalAlignmentValues
        {
            public const string TOP = "top";
            public const string MIDDLE = "middle";
            public const string BOTTOM = "bottom";
        }

        /// <summary>
        /// Defines the picture alignment values for a table
        /// </summary>
        public struct PictureAlignmentValues
        {
            public const string LEFT = "Left";
            public const string RIGHT = "Right";
            public const string INLINE = "inline";
        }

        #endregion

        /// <summary>
        /// Makes sure the command was executed properly
        /// </summary>
        /// <param name="commandResult">The result from executing the command</param>
        /// <returns>The result from executing the command</returns>
        private object ChkResult(object commandResult)
        {
            if ((commandResult !=null) && (commandResult.GetType().Equals(typeof(int))))
            {
                int result = (int)commandResult;
                if (result == QUERYFAILED)
                {
                    throw new NonApplicableCommandException("The command could not be executed at this time because it is not applicable. Command: " + 
                        LastCommandExecuted);
                }
            }
            return commandResult;
        }

        /// <summary>
        /// Makes sure the command was executed properly
        /// </summary>
        /// <param name="commandResult">The result from executing the command</param>
        /// <param name="expectedReturnType">The type of object the command was expected to return</param>
        /// <returns>The result from executing the command</returns>
        private object ChkResult(object commandResult, Type expectedReturnType)
        {
            commandResult = ChkResult(commandResult);

            if ((commandResult!=null) && (!commandResult.GetType().Equals(expectedReturnType)))
            {
                throw new HostedException("Return type was not as expected. Expected type " + expectedReturnType.ToString() +
                    " but received " + commandResult.GetType().ToString() + "\nCommand: " + LastCommandExecuted);
            }
            return commandResult;
        }

        /// <summary>
        /// Enters text into a field
        /// </summary>
        /// <param name="xPath">Field for data</param>
        /// <param name="data">Data to put in the field</param>
        public void EnterData(string xPath, string data)
        {
            if (string.IsNullOrEmpty(xPath))
            {
                throw new InvalidDataException("Parameter 'xPath' must have a value");
            }

            if (string.IsNullOrEmpty(data))
            {
                throw new InvalidDataException("Parameter 'data' must have a value");
            }

            if (IsFormLoaded)
            {
                XPathNavigator field =
                    InfoPathControl.XmlForm.MainDataSource.CreateNavigator().SelectSingleNode(xPath, InfoPathControl.XmlForm.NamespaceManager);
                field.SetValue(data);
            }
            else
            {
                throw new HostedException("No form is currently loaded");
            }
        }

        #region Load Methods

        /// <summary>
        /// Uses a File Open Dialog to get the path and name of an InfoPath xml, xsn or xsf to load
        /// </summary>
        public void Open()
        {
            OpenFileDialog openDialog = new OpenFileDialog();

            //set initial directory the my documents folder
            openDialog.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
            openDialog.Filter = "All InfoPath Forms |*.xml;*.xsn|Forms (*.xml)|*.xml,*.xsn|InfoPath Form Templates (*.xsn)|*.xsn|Manifest Files (*.xsf)|*.xsf|All files    (*.*)|*.*";

            //set the default filter = (InfoPath) Forms
            openDialog.FilterIndex = 1;

            //when the user clicks OK, call the Load method of the InfoPath Editor Control object
            if (openDialog.ShowDialog() == DialogResult.OK)
            {
                if (openDialog.FileName.EndsWith(".xsn",StringComparison.OrdinalIgnoreCase) || openDialog.FileName.EndsWith(".xsf",StringComparison.OrdinalIgnoreCase))
                {
                    NewFromFormTemplate(openDialog.FileName);
                }
                else if (openDialog.FileName.EndsWith(".xml",StringComparison.OrdinalIgnoreCase))
                {
                    Open(openDialog.FileName);
                }
                else
                {
                    throw new InvalidFileException("Specified file was not a valid InfoPath File");
                }
            }
            else
            {
                throw new HostedException("Operation was cancelled by the user");
            }
        }

        /// <summary>
        /// Loads a form given the full path and file name
        /// </summary>
        /// <param name="filePath">Full file path and name to an InfoPath xml file</param>
        public void Open(string filePath)
        {
            if (!String.IsNullOrEmpty(filePath))
            {
                try
                {
                    if (!File.Exists(filePath))
                    {
                        throw new InvalidFileException("The file " + filePath + " cannot be found");
                    }

                    InfoPathControl.Open(filePath);
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to open a file", ex);
                }
            }
            else
            {
                throw new InvalidDataException("Parameter 'filePath' must have a value");
            }
        }

        #region OpenThroughStream
        /// <summary>
        /// Uses a Form Open Dialog to load a form.  Loads the instance .xml
        /// into a stream first.
        /// </summary>
        public void OpenThroughStream()
        {
            OpenFileDialog openDialog = new OpenFileDialog();

            openDialog.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
            openDialog.Filter = "Forms (*.xml)|*.xml|All files    (*.*)|*.*";

            openDialog.FilterIndex = 1;

            if (openDialog.ShowDialog() == DialogResult.OK)
            {
                if (openDialog.FileName.EndsWith(".xml",StringComparison.OrdinalIgnoreCase))
                {
                    OpenThroughStream(openDialog.FileName);
                }
                else
                {
                    throw new HostedException("Invalid file type. Should be .xml");
                }
            }
            else
            {
                throw new HostedException("Operation was cancelled by the user");
            }
        }

        /// <summary>
        /// Loads an xml from through stream given the full path and file name
        /// </summary>
        /// <param name="fileName">Full path and file name</param>
        public void OpenThroughStream(string fileName)
        {
            if (!String.IsNullOrEmpty(fileName))
            {
                try
                {
                    if (!File.Exists(fileName))
                    {
                        throw new InvalidFileException("The file " + fileName + " cannot be found");
                    }

                    XmlDocument tempXmlDoc = new XmlDocument();
                    tempXmlDoc.Load(fileName);

                    MemoryStream tempCoreStream = new MemoryStream();
                    tempXmlDoc.Save(tempCoreStream);

                    InfoPathControl.Open(tempCoreStream);

                    tempCoreStream.Close();
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to open a file", ex);
                }
            }
            else
            {
                throw new InvalidDataException("Parameter 'fileName' must contain a value");
            }
        }
        #endregion

C# Definition:

/// <summary>
        /// Opens an InfoPath form template in the Editor
        /// </summary>
        /// <param name="filePath">Full path and file name of the .xsf or .xsn file</param>
        public void NewFromFormTemplate(string filePath)
        {
            if (!String.IsNullOrEmpty(filePath))
            {
                try
                {
                    if (!File.Exists(filePath))
                    {
                        throw new InvalidFileException("The file " + filePath + " cannot be found");
                    }
                    InfoPathControl.NewFromFormTemplate(filePath);
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to open a file", ex);
                }
            }
            else
            {
                throw new InvalidDataException("Parameter 'filePath' must contain a value");
            }
        }

        /// <summary>
        /// Uses Form Open Dialogs to get an instance .xml and a solution .xsn 
        /// to load.  The .xml is loaded into a stream first.
        /// </summary>
        public void NewFromFormTemplateWithData()
        {
            string xmlFile = string.Empty;
            string xsnFile = string.Empty;

            OpenFileDialog openDialog = new OpenFileDialog();

            openDialog.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);

            //get instance xml file
            openDialog.Title = "Select instance .xml file.";
            openDialog.Filter = "Forms (*.xml)|*.xml|All files    (*.*)|*.*";
            if (openDialog.ShowDialog() == DialogResult.OK)
            {
                if (openDialog.FileName.EndsWith(".xml",StringComparison.OrdinalIgnoreCase))
                {
                    xmlFile = openDialog.FileName;
                }
                else
                {
                    throw new InvalidFileException("Selected file " + openDialog.FileName + " was not an XML file");
                }

C# Definition:

//get form template xsn
                openDialog.Title = "Select form tempalte .xsn.";
                openDialog.Filter = "Form Templates (*.xsn)|*.xsn|All files    (*.*)|*.*";
                if (openDialog.ShowDialog() == DialogResult.OK)
                {
                    if (openDialog.FileName.EndsWith(".xsn",StringComparison.OrdinalIgnoreCase))
                    {
                        xsnFile = openDialog.FileName;
                    }
                    else
                    {
                        throw new HostedException("Selected file " + openDialog.FileName + " was not an XSN file");
                    }
                }
            }

            //Load files provided user did not cancel any option
            if (!(string.IsNullOrEmpty(xmlFile)) && !(string.IsNullOrEmpty(xsnFile)))
            {
                NewFromFormTemplateWithData(xmlFile, xsnFile);
            }
            else
            {
                throw new HostedException("Operation was cancelled by user");
            }
        }

        /// <summary>
        /// Load an XSN using data specified by in an xml file
        /// </summary>
        /// <param name="xmlFile">Data to open xsn with</param>
        /// <param name="xsnFile">XSN file to open</param>
        public void NewFromFormTemplateWithData(string xmlFile, string xsnFile)
        {
            if (String.IsNullOrEmpty(xmlFile))
            {
                throw new InvalidDataException("Parameter 'xmlFile' must have a value");
            }

            if (String.IsNullOrEmpty(xsnFile))
            {
                throw new InvalidDataException("Parameter 'xsnFile' must have a value");
            }

            if (!File.Exists(xmlFile))
            {
                throw new InvalidFileException("The file " + xmlFile + " cannot be found");
            }

            if (!File.Exists(xsnFile))
            {
                throw new InvalidFileException("The file " + xsnFile + " cannot be found");
            }

            try
            {
                XmlDocument tempXmlDoc = new XmlDocument();
                tempXmlDoc.Load(xmlFile);

                MemoryStream tempCoreStream = new MemoryStream();
                tempXmlDoc.Save(tempCoreStream);

                InfoPathControl.NewFromFormTemplate(xsnFile, tempCoreStream, XmlFormOpenMode.Default);

                tempCoreStream.Close();
            }
            catch (Exception ex)
            {
                throw new HostedException("An error occurred while attempting to open a file", ex);
            }
        }

        #endregion

        #region Save
        /// <summary>
        /// Saves the currently opened document
        /// </summary>
        /// <param name="interactionType">OM or IOLE</param>
        public void Save(InteractionType interactionType)
        {
            switch (interactionType)
            {
                case InteractionType.OM:
                    if (IsFormLoaded)
                    {
                        try
                        {
                            InfoPathControl.XmlForm.Save();
                        }
                        catch(Exception ex)
                        {
                            throw new HostedException("An error occurred while attempting to save this form", ex);
                        }
                    }
                    break;
                case InteractionType.IOLE:
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Save));
                    break;
                default:
                    throw new HostedException("Invalid InteractionType.");
            }
        }

        /// <summary>
        /// Opens the Save As dialog
        /// </summary>
        /// <param name="interactionType">IOLE or OM</param>
        public void SaveAs(InteractionType interactionType)
        {
            switch (interactionType)
            {
                case InteractionType.OM:
                    if (IsFormLoaded)
                    {
                        SaveFileDialog saveFileDialog = new SaveFileDialog();

                        saveFileDialog.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);

                        saveFileDialog.Filter = "Forms (*.xml)|*.xml|All files (*.*)|*.*";

                        saveFileDialog.FilterIndex = 1;

                        if (saveFileDialog.ShowDialog() == DialogResult.OK)
                        {
                            SaveAs(saveFileDialog.FileName);
                        }
                    }
                    break;
                case InteractionType.IOLE:
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SaveAs));
                    break;
                default:
                    throw new HostedException("Invalid InteractionType.");
            }
        }

        /// <summary>
        /// Does a save as using the object model given the save location
        /// </summary>
        /// <param name="savePath">Location to save the file</param>
        public void SaveAs(string savePath)
        {
            if (String.IsNullOrEmpty(savePath))
            {
                throw new InvalidDataException("Parameter 'savePath' must have a value");
            }

            try
            {
                if (savePath.EndsWith(".xml",StringComparison.OrdinalIgnoreCase))
                {
                    InfoPathControl.XmlForm.SaveAs(savePath);
                }
                else
                {
                    InfoPathControl.XmlForm.SaveAs(savePath + ".xml");
                }
            }
            catch (Exception ex)
            {
                throw new HostedException("An error occurred while attempting to save this form", ex);
            }
        }

        #endregion

        #region Print
        /// <summary>
        /// Prints the current view. Print Dialog does not appear and therefore a document 
        /// will be printed.with the default printer settings
        /// </summary>
        public void Print()
        {
            if (IsFormLoaded)
            {
                try
                {
                    InfoPathControl.XmlForm.Print();
                    //NOTE: XmlForm.Print(true) will NOT show the print dialog.
                    //The print dialog is not supported in hosting scenarios
                }
                catch(Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to print this form", ex);
                }
            }
        }
        #endregion

        #region Close
        /// <summary>
        /// Closes an XMLForm in the form control
        /// </summary>
        /// <param name="interactionType">Execute through IOLE or OM</param>
        public void Close(InteractionType interactionType)
        {
            // Check to make sure there is a document loaded before    
            // trying to close it
            if (IsFormLoaded)
            {
                switch (interactionType)
                {
                    case InteractionType.OM:
                        try
                        {
                            InfoPathControl.XmlForm.Close();
                        }
                        catch (Exception ex)
                        {
                            throw new HostedException("An error occurred while attempting to close this form", ex);
                        }
                        break;
                    case InteractionType.IOLE:
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Close));
                        break;
                    default:
                        throw new HostedException("Invalid InteractionType.");
                }
            }
        }
        #endregion

        #region Font Formatting

        #region Bold

        /// <summary>
        /// Sets/Unsets the formatting of the selected text to bold
        /// </summary>
        public void ToggleFontFormattingBold()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingBold));
        }

        #endregion

        #region Italic
        ///    <summary>
        ///    Sets/Unsets the formatting of the selected text to Italics
        ///    </summary>
        public void ToggleFontFormattingItalic()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingItalic));
        }

        #endregion

        #region Underline

        ///    <summary>
        ///    Sets/Unsets the formatting of the selected text to be Underlined
        ///    </summary>
        public void ToggleFontFormattingUnderline()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingUnderline));
        }
        #endregion

        #region Strikethrough
        ///    <summary>
        ///    Sets/Unsets the formatting of the selected text to be strikethrough
        ///    </summary>
        public void ToggleFontFormattingStrikethrough()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingStrikethrough));
        }
        #endregion

        #region Superscript
        ///    <summary>
        ///    Sets the formatting of the selected text to be superscipt
        ///    </summary>
        public void ToggleFontFormattingSuperscript()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingSuperscript));
        }
        #endregion

        #region Subscript
        ///    <summary>
        ///    Sets/Unsets the formatting of the selected text to subscript
        ///    </summary>
        public void ToggleFontFormattingSubscript()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingSubscript));
        }

        #endregion

        #region IncreaseFontSizeBy2
        ///    <summary>
        ///    Increases the font size of the selected text by 2
        ///    </summary>
        public void IncreaseFontSizeBy2()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IncreaseFontSizeBy2));
        }
        #endregion

        #region DecreaseFontSizeBy2
        ///    <summary>
        ///    Decreases the font size of the selected text by 2
        ///    </summary>
        public void DecreaseFontSizeBy2()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DecreaseFontSizeBy2));
        }
        #endregion

        #region ClearFontFormatting
        ///    <summary>
        ///    Clears font formatting of the selected text
        ///    </summary>
        public void ClearFontFormatting()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ClearFontFormatting));
        }
        #endregion

        #region Headings
        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for heading 1
        ///    </summary>
        public void SetFontFormattingHeading1()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading1));
        }

        ///    <summary>
        ///Sets the font formatting of the selected text to InfoPath's setting for heading 2
        ///    </summary>
        public void SetFontFormattingHeading2()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading2));
        }

        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for heading 3
        ///    </summary>
        public void SetFontFormattingHeading3()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading3));
        }

        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for heading 4
        ///    </summary>
        public void SetFontFormattingHeading4()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading4));
        }

        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for heading 5
        ///    </summary>
        public void SetFontFormattingHeading5()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading5));
        }

        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for heading 6
        ///    </summary>
        public void SetFontFormattingHeading6()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingHeading6));
        }

        ///    <summary>
        ///    Sets the font formatting of the selected text to InfoPath's setting for normal
        ///    </summary>
        public void SetFontFormattingNormal()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFontFormattingNormal));
        }

        #endregion

        #region Font
        /// <summary>
        /// Gets the number of fonts in InfoPath's font list
        /// </summary>
        ///<returns>numbers of fonts available</returns>
        public int FontsAvailableCount
        {
            get
            {
                return Convert.ToInt32(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFontsAvailableCount), typeof(int)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the name of a font from InfoPath's font combobox at a user specified index
        /// </summary>
        /// <param name="index">index of the font</param>
        /// <returns>The name of the font, empty if index is invalid</returns>
        public string GetFontAt(int index)
        {
            if (index >= 0 && index < FontsAvailableCount)
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFontAvailableByIndex, index), typeof(string)),CultureInfo.CurrentCulture
                    );
            }
            else
            {
                throw new InvalidDataException("Index is not in a valid range");
            }
        }

C# Definition:

/// <summary>
        /// Sets/Gets the font of the currenty selected text
        /// </summary>
        /// <returns>The name of the font of the selected text</returns>
        public string SelectedTextFont
        {
            get
            {
                    return Convert.ToString(
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedTextFont),typeof(string)),CultureInfo.CurrentCulture
                        );

            }

            set
            {
                if (!String.IsNullOrEmpty(value))
                {
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedTextFont, value));
                }
            }
        }
        #endregion

        #region FontSize
        /// <summary>
        /// Gets the number of font sizes in InfoPath's font size lists
        /// </summary>
        /// <returns>The number of font sizes available</returns>
        public int FontSizesAvailableCount
        {
            get
            {
                return Convert.ToInt32(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFontSizesAvailableCount),typeof(int)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the value of a font size from InfoPath's font sizes combobox at a user specified index
        /// </summary>
        /// <param name="index">Index of the requested font size</param>
        /// <returns>The font size at the specified index</returns>
        public string GetFontSizeAt(int index)
        {
            if (index >= 0 && index < FontSizesAvailableCount)
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFontSizeAvailableByIndex, index), typeof(string)),CultureInfo.CurrentCulture
                    );
            }
            else
            {
                throw new InvalidDataException("Index is not in a valid range");
            }
        }

        /// <summary>
        /// Sets/Gets the font size of the currently selected text
        /// </summary>
        /// <returns>The name of the font size of the selected text</returns>
        public string SelectedTextFontSize
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedTextFontSize), typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                if (!String.IsNullOrEmpty(value))
                {
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedTextFontSize, value));
                }
            }
        }

        #endregion

        #region Font Color
        /// <summary>
        /// Sets/Gets the font color of the selected text
        /// </summary>
        /// <returns>The current font color</returns>
        public Color FontColor
        {
            get
            {
                try
                {
                    return ColorTranslator.FromOle(Convert.ToInt32(
                            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedTextFontColor), typeof(int)), CultureInfo.CurrentCulture
                            ));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the font color", ex);
                }
            }

            set
            {
                UInt32 vaIn;
                try
                {
                    vaIn = Convert.ToUInt32(System.Drawing.ColorTranslator.ToOle(value));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to set the font color", ex);
                }

                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedTextFontColor, vaIn));

            }
        }

        /// <summary>
        /// Gets InfoPath's default font color
        /// </summary>
        /// <returns>The default font color</returns>
        public Color DefaultFontColor
        {
            get
            {
                try
                {
                    return ColorTranslator.FromOle(Convert.ToInt32(
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetDefaultFontColor), typeof(int)),CultureInfo.CurrentCulture
                        ));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the default font color", ex);
                }
            }
        }

        #endregion

        #region HighlightColor
        /// <summary>
        /// Sets/Gets the highlight color of the selected text
        /// </summary>
        /// <returns type="Color">The current highlight color</returns>
        public Color HighlightColor
        {
            get
            {
                try
                {
                    return ColorTranslator.FromOle(Convert.ToInt32(
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedTextHighlightColor), typeof(int)),CultureInfo.CurrentCulture
                        ));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the highlight color", ex);
                }
            }

            set
            {
                UInt32 vaIn;
                try
                {
                    vaIn = Convert.ToUInt32(System.Drawing.ColorTranslator.ToOle(value));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to set the highlight color", ex);
                }
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedTextHighlightColor, vaIn));
            }
        }

        /// <summary>
        /// Gets InfoPath's default highlight color
        /// </summary>
        /// <returns type="Color">The default highlight color</returns>
        public Color DefaultHighlightColor
        {
            get
            {
                try
                {
                    return ColorTranslator.FromOle(Convert.ToInt32(
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetDefaultHighlightColor), typeof(int)),CultureInfo.CurrentCulture
                        ));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the default highlight color", ex);
                }
            }
        }
        #endregion

        #endregion

        #region Paragraph settings

        #region AlignLeft
        /// <summary>
        /// Aligns the selected paragraph to the left
        /// </summary>
        public void AlignTextLeft()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.AlignTextLeft));
        }

        #endregion

        #region AlignCenter
        /// <summary>
        /// Aligns the selected paragraph to the center
        /// </summary>
        public void AlignTextCenter()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.AlignTextCenter));
        }

        #endregion

        #region AlignRight
        ///    <summary>
        ///    Aligns the selected paragraph to the right
        ///    </summary>
        public void AlignTextRight()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.AlignTextRight));
        }

        #endregion

        #region AlignJustify
        ///    <summary>
        ///    Justifies the selected paragraph
        ///    </summary>
        public void AlignTextJustify()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.AlignTextJustify));
        }

        #endregion

        #region Increase Indent
        ///    <summary>
        ///    Increases indentation of the selected paragraph
        ///    </summary>
        public void IncreaseIndent()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IncreaseIndent));
        }
        #endregion

        #region Decrease Indent
        ///    <summary>
        ///    Decreases indentation of the selected paragraph
        ///    </summary>
        public void DecreaseIndent()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DecreaseIndent));
        }
        #endregion

        #region Single Line Spacing
        ///    <summary>
        ///    Sets the line spacing to 1.0
        ///    </summary>
        public void SetSingleLineSpacing()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSingleLineSpacing));
        }

        #endregion

        #region Double Line Spacing
        ///    <summary>
        ///    Sets the line spacing to 2.0
        ///    </summary>
        public void SetDoubleLineSpacing()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetDoubleLineSpacing));
        }

        #endregion

        #region 1.5 Line Spacing
        ///    <summary>
        ///    Sets the line spacing to 1.5
        ///    </summary>
        public void Set15LineSpacing()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Set15LineSpacing));
        }

        #endregion

        #region Background Color
        /// <summary>
        /// Gets the background color of the selected text
        /// </summary>
        /// <returns type="Color">the current background color</returns>
        public Color BackgroundColor
        {
            get
            {
                try
                {
                    return ColorTranslator.FromOle(Convert.ToInt32(
                        ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedTextBackgroundColor)),CultureInfo.CurrentCulture
                        ));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the background color", ex);
                }
            }

            set
            {
                UInt32 vaIn;
                try
                {
                    vaIn = Convert.ToUInt32(System.Drawing.ColorTranslator.ToOle(value));
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to set the background color", ex);
                }
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedTextBackgroundColor, vaIn));
            }
        }
        #endregion

        #endregion

        #region Editing

        #region Undo
        ///    <summary>
        ///    Un-does the last action
        ///    </summary>
        public void Undo()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Undo));
        }
        #endregion

        #region Redo
        ///    <summary>
        ///    Re-does the last action
        ///    </summary>
        public void Redo()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Redo));
        }
        #endregion

        #region Cut
        ///    <summary>
        ///    Cuts the selected text and copies it to the clipboard
        ///    </summary>
        public void Cut()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Cut));
        }
        #endregion

        #region Copy
        ///    <summary>
        ///    Copies the selected text to the clipboard
        ///    </summary>
        public void Copy()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Copy));
        }
        #endregion

        #region Paste
        ///    <summary>
        ///    Pastes the copied or cut text into the selected control
        ///    </summary>
        public void Paste()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Paste));
        }
        #endregion

        #region Select All
        ///    <summary>
        ///    Selects all of the text in a control
        ///    </summary>
        public void SelectAll()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectAll));
        }

        #endregion

        #region Format Painter
        /// <summary>
        /// Applies the current formatting to other text
        /// </summary>
        public void FormatPainter()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FormatPainterCopyFormatting));
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FormatPainterApplyFormatting));
        }

        /// <summary>
        /// Applies the current formatting to other text with the brush remaining after each paste
        /// </summary>
        public void FormatPainterPersistent()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FormatPainterCopyFormattingPersistent));
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FormatPainterApplyFormattingPersistent));
        }
        #endregion

        #region Find and Replace

        /// <summary>
        /// Sets/Gets whether or not the use wildcards option is turned on
        /// </summary>
        /// <returns>True if use wildcards is on, otherwise false</returns>
        public bool FindReplaceOptionUseWildcardsOn
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SetFindReplaceOptionUseWildcards);
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFindReplaceOptionUseWildcards, value));
            }
        }

        /// <summary>
        /// Sets/Gets whether or not the match case option is turned on
        /// </summary>
        /// <returns>True if match case is on, otherwise false</returns>
        public bool FindReplaceOptionMatchCaseOn
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SetFindReplaceOptionMatchCase);
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFindReplaceOptionMatchCase, value));
            }
        }

        /// <summary>
        /// Sets/Gets whether or not the use whole words only option is turned on
        /// </summary>
        /// <returns>True if whole words only is on, otherwise false</returns>
        public bool FindReplaceOptionWholeWordsOnlyOn
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SetFindReplaceOptionWholeWordOnly);
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFindReplaceOptionWholeWordOnly, value));
            }

        }

        /// <summary>
        /// Sets/Gets the search direction
        /// </summary>
        /// <returns>1 for up, o for down</returns>
        public int FindReplaceOptionSearchDirection
        {
            get
            {
                return Convert.ToInt32(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFindReplaceOptionSearchDirection),typeof(int)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFindReplaceOptionSearchDirection, value));
            }
        }

        /// <summary>
        /// Gets the result of the find/replace action
        /// </summary>
        /// <returns>The result of the find operation</returns>
        public int FindReplaceResult
        {
            get
            {
                return Convert.ToInt32(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFindReplaceState),typeof(int)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Sets/Gets the string being searched for
        /// </summary>
        /// <returns>The string being searched for</returns>
        public string FindString
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetFindString),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetFindString, value));
            }
        }

        /// <summary>
        /// Sets/Gets the string replacing the search string
        /// </summary>
        /// <returns>The replacement string</returns>
        public string ReplaceString
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetReplaceWithString),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetReplaceWithString, value));
            }
        }
        /// <summary>
        /// Finds the next instance of the search string in the document
        /// </summary>
        public void FindNext()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FindReplaceFindNext));
        }

        ///    <summary>
        ///    Replaces the currently selected search string instance
        ///    </summary>
        ///    <param name="ReplaceString">string to replace selected string</param>
        public void Replace()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Replace));
        }

        ///    <summary>
        ///    Replaces all matching instances of the find parameter
        ///    </summary>
        ///    <param name="ReplaceString">string to replace find string with</param>
        public void ReplaceAll()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ReplaceAll));
        }

        #endregion

        #endregion

        #region Bulletts and Numbering

        #region ClearBulletList
        ///    <summary>
        ///    Remove the bullets from the selected line(s)
        ///    </summary>
        public void ClearBulletedList()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ClearBulletedList));
        }

        ///    <summary>
        ///    Removes the numbered list from the selected line(s)
        ///    </summary>
        public void ClearNumberedList()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ClearNumberedList));
        }
        #endregion

        #region Insert Numbered and Bulleted List
        ///    <summary>
        ///    Inserts/Removes a numbered list for the current selection
        ///    </summary>
        public void InsertNumberedList()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedList));
        }

        ///    <summary>
        ///    Inserts/Removes a bulleted list for the current selection
        ///    </summary>
        public void InsertBulletedList()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertBulletedList));
        }
        #endregion

        #region Insert NumberList Decimal
        ///    <summary>
        ///    Inserts a numbered list using decimal numbers
        ///    </summary>
        public void InsertNumberedListDecimal()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedListDecimal));
        }

        #endregion

        #region InsertNumberedListRomanUppercase
        ///    <summary>
        ///    Inserts a numbered list using upper case roman numeral numbers
        ///    </summary>
        public void InsertNumberedListRomanUppercase()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedListRomanUppercase));
        }
        #endregion

        #region InsertNumberedListRomanLowercase
        ///    <summary>
        ///    Inserts a numbered list using lower case roman numeral numbers
        ///    </summary>
        public void InsertNumberedListRomanLowercase()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedListRomanLowercase));
        }

        #endregion

        #region InsertNumberedListAlphaUppercase
        ///    <summary>
        ///    Inserts an numbered list using uppercase alpha numeric numbers
        ///    </summary>
        public void InsertNumberedListAlphaUppercase()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedListAlphaUppercase));
        }

        #endregion

        #region InsertNumberedListAlphalowercase
        ///    <summary>
        ///    Inserts a numbered list using lowercase alpha numeric numbers
        ///    </summary>
        public void InsertNumberedListAlphaLowercase()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertNumberedListAlphaLowercase));
        }
        #endregion

        #region InsertBulletListSolidCircle
        ///    <summary>
        ///    Inserts a bulleted list with solid circles
        ///    </summary>
        public void InsertBulletedListSolidCircle()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertBulletedList));
        }

        #endregion

        #region InsertBulletListEmptyCircle
        ///    <summary>
        ///    Inserts a bulleted list with empty circles
        ///    </summary>
        public void InsertBulletedListEmptyCircle()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertBulletedListEmptyCircle));
        }

        #endregion

        #region InsertBulletListSolidSquare
        ///    <summary>
        ///    Inserts a bulleted list with solid squares
        ///    </summary>
        public void InsertBulletedListSolidSquare()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertBulletedListSolidSquare));
        }

        #endregion

        #endregion

        #region Table Settings
        #region Draw Table
        ///    <summary>
        ///    Activates/Deactivates draw pen which is used to create a table
        ///    </summary>
        public void ToggleDrawTable()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DrawTable));
        }

        #endregion

        #region Erase Table
        ///    <summary>
        ///    Activates/Deactivates the eraser for erasing a table
        ///    </summary>
        public void ToggleEraseTable()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.EraseTable));
        }

        #endregion

        #region Insert and Delete Table
        /// <summary>
        /// Inserts a table into a supported control
        /// </summary>
        /// <param name="numRows">Number of rows the table should have</param>
        /// <param name="numCols">Number of columns the table should have</param>
        public void InsertTable(int rows, int columns)
        {
            if ((rows > 0) && (columns > 0))
            {
                object[] vaIn = new object[2];
                vaIn[0] = rows;
                vaIn[1] = columns;

                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertTable, vaIn));
            }
            else
            {
                throw new InvalidDataException("The number of rows and columns must be greater than zero.");
            }
        }

        /// <summary>
        /// Deletes the selected table
        /// </summary>
        public void DeleteSelectedTable()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DeleteSelectedTable));
        }
        #endregion

        #region Select a Table
        /// <summary>
        /// Selects all of the current table
        /// </summary>
        public void SelectTable()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectTable));
        }
        #endregion

        #region Insert columns and rows
        /// <summary>
        /// Inserts a column to the left of the currently focused column
        /// </summary>
        public void InsertColumnLeft()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertColumnLeft));
        }

        /// <summary>
        /// Inserts a column to the right of the currently focused column
        /// </summary>
        public void InsertColumnRight()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertColumnRight));
        }

        /// <summary>
        /// Inserts a row above the currently focused row
        /// </summary>
        public void InsertRowAbove()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertRowAbove));
        }

        /// <summary>
        /// Inserts a row below the currently focused row
        /// </summary>
        public void InsertRowBelow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertRowBelow));
        }
        #endregion

        #region Delete columns and rows
        /// <summary>
        /// Deletes the selected columns
        /// </summary>
        public void DeleteSelectedColumns()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DeleteSelectedColumns));
        }

        /// <summary>
        /// Deletes the selected rows
        /// </summary>
        public void DeleteSelectedRows()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DeleteSelectedRows));
        }
        #endregion

        #region Select columns and rows
        /// <summary>
        /// Selects all of the current column
        /// </summary>
        public void SelectColumn()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectColumns));
        }

        /// <summary>
        /// Selects the column before the column with the current focus
        /// </summary>
        public void SelectPreviousColumn()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectPreviousColumn));
        }

        /// <summary>
        /// Selects the column after the column with the current focus
        /// </summary>
        public void SelectNextColumn()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectNextColumn));
        }

        /// <summary>
        /// Selects all of the current row
        /// </summary>
        public void SelectRow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectRows));
        }

        /// <summary>
        /// Selects the row before the row with the current focus
        /// </summary>
        public void SelectPreviousRow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectPreviousRow));
        }

        /// <summary>
        /// Selects the row after the row with the current focus
        /// </summary>
        public void SelectNextRow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectNextRow));
        }
        #endregion

        #region Cells
        /// <summary>
        /// Selects the entire current cell
        /// </summary>
        public void SelectCell()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectCell));
        }

        /// <summary>
        /// Combines two or more cells of a table
        /// </summary>
        public void MergeCells()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.MergeCells));
        }

        /// <summary>
        /// Splits Cells into different proportions
        /// </summary>
        /// <param name="numCols">Number of columns to split into</param>
        /// <param name="numRows">Number of rows to split cells into</param>
        /// <param name="merge">Flag indicating cells should be merged/not merged before splitting</param>
        public void SplitCells(decimal columns, decimal rows, bool merge)
        {
            if ((rows > 0) && (columns > 0))
            {
                object[] vaIn = new object[3];
                vaIn[0] = columns.ToString(CultureInfo.CurrentCulture);
                vaIn[1] = rows.ToString(CultureInfo.CurrentCulture);
                vaIn[2] = merge;

                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SplitCells, vaIn));
            }
            else
            {
                throw new InvalidDataException("The number of rows and columns must be greater than zero");
            }
        }

        #region Cell Alignment
        /// <summary>
        /// Sets the alignment of the selected cell to be at the top
        /// </summary>
        public void SetSelectedCellAlignmentTop()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedCellAlignmentTop));
        }

        /// <summary>
        /// Sets the alignment of the selected cell to be in the middle
        /// </summary>
        public void SetSelectedCellAlignmentMiddle()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedCellAlignmentMiddle));
        }

        /// <summary>
        /// Sets the alignment of the selected cell to be at the bottom
        /// </summary>
        public void SetSelectedCellAlignmentBottom()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedCellAlignmentBottom));
        }

        /// <summary>
        /// Gets the vertical alignment of the selected cell
        /// </summary>
        /// <return type="string">vertical alignment value (top,middle,bottom)</return>
        public string SelectedCellVerticalAlignment
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedCellVerticalAlignment),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }
        #endregion

        #region Table cell padding
        /// <summary>
        /// Sets the padding of selected cells
        /// </summary>
        /// <param name="padTop">padding to the top</param>
        /// <param name="padRight">padding to the right</param>
        /// <param name="padBottom">padding to the bottom</param>
        /// <param name="padLeft">padding to the left</param>
        public void SetSelectedCellPadding(string padTop, string padRight, string padBottom, string padLeft)
        {
            if (!String.IsNullOrEmpty(padTop) && !String.IsNullOrEmpty(padRight) && !String.IsNullOrEmpty(padBottom)
                && !String.IsNullOrEmpty(padLeft))
            {
                object[] vaIn = new object[4];
                vaIn[0] = padTop;
                vaIn[1] = padRight;
                vaIn[2] = padBottom;
                vaIn[3] = padLeft;

                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedCellPadding, vaIn));
            }
            else
            {
                throw new InvalidDataException("One or more parameters is invalid");
            }
        }

        /// <summary>
        /// Gets the top padding of the selected cell
        /// </summary>
        /// <returns>The value for the top padding. Includes unit</returns>
        public string SelectedCellTopPadding
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedCellTopPadding),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the right padding of the selected cell
        /// </summary>
        /// <returns>The value for the right padding. Includes unit</returns>
        public string SelectedCellRightPadding
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedCellRightPadding),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the bottom padding of the selected cell
        /// </summary>
        /// <returns>The value for the bottom padding. Includes unit</returns>
        public string SelectedCellBottomPadding
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedCellBottomPadding),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the left padding of the selected cell
        /// </summary>
        /// <returns>The value for the left padding. Includes unit</returns>
        public string SelectedCellLeftPadding
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedCellLeftPadding),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }
        #endregion

        #endregion

        #region Table Alignment
        /// <summary>
        /// Sets/Gets the alignment of the table
        /// </summary>
        /// <return>string (left, center, right)</return>
        public string TableHorizontalAlignment
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetTableHorizontalAlignment),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetTableHorizontalAlignment, value));
            }
        }
        #endregion

        #region Table Direction
        /// <summary>
        /// Sets/Gets the direction of the table
        /// </summary>
        /// <return type=string>value of direction ("LTR" (Left To Right) or "RTL" (Right To Left))</return>
        public string TableDirection
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetTableDirection),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetTableDirection, value));
            }
        }
        #endregion

        #region Row height and column width

        /// <summary>
        /// Sets/Gets the height of the selected row
        /// </summary>
        /// <returns>The height of the selected row with units</returns>
        public string RowHeight
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedRowHeight),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedRowHeight, value));
            }
        }

        /// <summary>
        /// Sets/Gets the width of the selected column
        /// </summary>
        /// <returns>The width of the selected column with units</returns>
        public string ColumnWidth
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSelectedColumnWidth),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSelectedColumnWidth, value));
            }
        }
        #endregion

        #region Row and column properties options
        /// <summary>
        /// Checks if there is a row below the currently selected row
        /// </summary>
        public bool IsNextRowExist
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SelectNextRow);
            }
        }

        /// <summary>
        /// Checks if there is a row above the currently selected row
        /// </summary>
        public bool IsPreviousRowExist
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SelectPreviousRow);
            }
        }

        /// <summary>
        /// Selects the next row in the table
        /// </summary>
        public void GotoNextRow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectNextRow));
        }

        /// <summary>
        /// Selects the previous row in the table
        /// </summary>
        public void GotoPreviousRow()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectPreviousRow));
        }

        /// <summary>
        /// Checks if there is a column right of the currently selected column
        /// </summary>
        public bool IsNextColumnExist
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SelectNextColumn);
            }
        }

        /// <summary>
        /// Checks if there is a column left of the currently selected column
        /// </summary>
        public bool IsPreviousColumnExist
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SelectPreviousColumn);
            }
        }

        /// <summary>
        /// Selects the next column in the table
        /// </summary>
        public void GotoNextColumn()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectNextColumn));
        }

        /// <summary>
        /// Selects the previous column in the table
        /// </summary>
        public void GotoPreviousColumn()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectPreviousColumn));
        }
        #endregion

        #endregion

        #region SpellChecker
        /// <summary>
        /// Finds and selects the next misspelled word
        /// </summary>
        /// <returns type="bool">true: if a misspelled word was found, false otherwise</returns>
        public bool FindNextMisspelledWord()
        {
            return Convert.ToBoolean(
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.FindNextMisspelledWord),typeof(bool)),CultureInfo.CurrentCulture
                );
        }

        /// <summary>
        /// Gets the number of suggested corrections
        /// </summary>
        /// <returns>The number of spelling suggestions</returns>
        public int SpellingSuggestionsCount
        {
            get
            {
                return Convert.ToInt32(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSpellingSuggestionsCount),typeof(int)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the i-th suggestion
        /// </summary>
        /// <param name="index">the suggestion index</param>
        /// <returns>the suggestion string</returns>
        public string GetSpellingSuggestion(int index)
        {
            if (index >= 0 && index < SpellingSuggestionsCount)
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSpellingSuggestion, index), typeof(string)),CultureInfo.CurrentCulture
                    );
            }
            else
            {
                throw new InvalidDataException("Index is out of expected range");
            }
        }

        /// <summary>
        /// Gets the selected misspelled word
        /// </summary>
        /// <returns>The currently selected misspelled word</returns>
        public string CurrentMisspelledWord
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetCurrentMisspelledWord),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Ignores the selected misspelling
        /// </summary>
        /// <param name="misspelled">the misspelled word to ignore</param>
        public void IgnoreMisspelledWord(string misspelled)
        {
            if (!String.IsNullOrEmpty(misspelled))
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IgnoreMisspelledWord, misspelled));
            }
            else
            {
                throw new InvalidDataException("Misspelled word is either null or an empty string");
            }
        }

        /// <summary>
        /// Ignores all the occurences of the specified misspelled word
        /// </summary>
        /// <param name="misspelled">the word to ignore</param>
        public void IgnoreAllOfMisspelledWord(string misspelled)
        {
            if (!String.IsNullOrEmpty(misspelled))
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IgnoreAllOfMisspelledWord, misspelled));
            }
            else
            {
                throw new InvalidDataException("Misspelled word is either null or an empty string");
            }
        }

        /// <summary>
        /// Corrects the misspelled word
        /// </summary>
        /// <param name="misspelled">the misspelled word</param>
        /// <param name="correct">correction of the misspelled word</param>
        public void CorrectMisspelledWord(string misspelled, string correct)
        {
            if (!String.IsNullOrEmpty(misspelled) && !String.IsNullOrEmpty(correct))
            {
                object[] vaIn = { misspelled, correct };
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.CorrectMisspelledWord, vaIn));
            }
            else
            {
                throw new InvalidDataException("The misspelled word and the corrected word cannot be null or empty");
            }
        }

        /// <summary>
        /// Corrects all the occurences of this misspelled word
        /// </summary>
        /// <param name="misspelled">the word to correct</param>
        /// <param name="correct">correction of the misspelled word</param>
        public void CorrectAllOfMisspelledWord(string misspelled, string correct)
        {
            if (!String.IsNullOrEmpty(misspelled) && !String.IsNullOrEmpty(correct))
            {
                object[] vaIn = { misspelled, correct };
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.CorrectAllOfMisspelledWord, vaIn));
            }
            else
            {
                throw new InvalidDataException("The misspelled word and the corrected word cannot be null or empty");
            }
        }

        /// <summary>
        /// Adds the unrecognized\misspelled word to the custom dictionary
        /// </summary>
        /// <param name="misspelled">the new word to add to the dictionary</param>
        public void AddWordToDictionary(string misspelled)
        {
            if (!String.IsNullOrEmpty(misspelled))
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.AddWordToDictionary, misspelled));
            }
            else
            {
                throw new InvalidDataException("The misspelled word is either null or an empty string");
            }
        }

        /// <summary>
        /// Deletes the selected misspelled word
        /// </summary>
        /// <param name="misspelled">the word to delete</param>
        public void DeleteMisspelledWord(string misspelled)
        {
            if (!String.IsNullOrEmpty(misspelled))
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.DeleteMisspelledWord, misspelled));
            }
            else
            {
                throw new InvalidDataException("The misspelled word is either null or an empty string");
            }
        }

        /// <summary>
        /// Sets/Gets whether or not checking should be checked as users type
        /// </summary>
        /// <param name="checkAsYouType">Flag indicating whether to turn the option on or off</param>
        public bool SpellingOptionCheckAsYouTypeOn
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SetSpellingOptionCheckAsYouType);
            }
            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetSpellingOptionCheckAsYouType, value));
            }
        }

        #endregion

        #region Picture Formatting

        /// <summary>
        /// Positions the picture such that it falls inline with the text
        /// </summary>
        public void SetPictureInlineWithText()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureInlineWithText));
        }

        /// <summary>
        /// Positions the picture such that it falls to the left of any text
        /// </summary>
        public void SetPictureToLeftOfText()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureToLeftOfText));
        }

        /// <summary>
        /// Positions the picture such that it falls to the right of any text
        /// </summary>
        public void SetPictureToRightOfText()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureToRightOfText));
        }

        // <summary>
        /// Sets/Gets the height of the selected picture
        /// </summary>
        /// <returns>Height of the selected picture</returns>
        public string PictureHeight
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetPictureHeight),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureWidth, value));
            }
        }

        /// <summary>
        /// Sets/Gets the width of the selected picture
        /// </summary>
        /// <returns>Width of the selected picture</returns>
        public string PictureWidth
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetPictureWidth),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureWidth, value));
            }
        }

        /// <summary>
        /// Sets/Gets the alternative text of the selected picture
        /// </summary>
        /// <returns>Alternative text</returns>
        public string PictureAlternativeText
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetPictureAlternativeText),typeof(string)),CultureInfo.CurrentCulture
                    );
            }

            set
            {
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetPictureAlternativeText, value));
            }
        }

        /// <summary>
        /// Gets the alignment of the picture
        /// </summary>
        /// <returns>left,right or inline</returns>
        public string PictureAlignment
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetPictureTextWrapping),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }
        #endregion

        #region Insertion

        #region Symbol
        /// <summary>
        /// Shows the Insert a Symbol Dialog
        /// </summary>
        public void ShowInsertSymbolDialog()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowInsertSymbolDialog));
        }
        #endregion

        #region Image
        /// <summary>
        /// Inserts at image from the specified location
        /// </summary>
        /// <param name="path">path to the image</param>
        public void InsertImage(string filePath)
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertImage, filePath));
        }

        /// <summary>
        /// Inserts a Picture from a File dialog
        /// </summary>
        public void InsertPictureFromFile()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertPictureFromFile));
        }
        #endregion

        #region Horizontal Line
        /// <summary>
        /// Inserts a horizontal line into a rich text control
        /// </summary>
        public void InsertHorizontalLine()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertHorizontalLine));
        }
        #endregion

        #region Hyperlink
        /// <summary>
        /// Checks if a hyperlink is currently selected
        /// </summary>
        public bool IsHyperlinkSelected
        {
            get
            {
                return IsCommandOn(FormControlCommandIds.CommandIds.SelectHyperlink);
            }
        }

        /// <summary>
        /// Gets the URL affiliated with the hyperlink
        /// </summary>
        /// <returns></returns>
        public string HyperlinkAddress
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetHyperlinkAddress),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Gets the text affiliated with the Hyperlink
        /// </summary>
        /// <returns></returns>
        public string HyperlinkDisplayText
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetHyperlinkDisplayText),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Selects all of the current hyperlink
        /// </summary>
        public void SelectHyperlink()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SelectHyperlink));
        }

        /// <summary>
        /// Inserts a hyperlink into a control
        /// </summary>
        /// <param name="link">Where the hyperlink leads to</param>
        /// <param name="text">Text to display for the hyperlink</param>
        public void InsertHyperlink(string link, string text)
        {
            if (!String.IsNullOrEmpty(link) && !String.IsNullOrEmpty(text))
            {
                object[] vaIn = { link, text };
                ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.InsertHyperlink, vaIn));
            }
            else
            {
                throw new InvalidDataException("Both the link and the text information cannot be null or blank");
            }
        }

        /// <summary>
        /// Removes a hyperlink
        /// </summary>
        public void RemoveHyperlink()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.RemoveHyperlink));
        }
        #endregion

        #endregion

        #region Errors
        /// <summary>
        /// Selects the first error on the current view
        /// </summary>
        public void GoToFirstErrorOnView()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GotoFirstErrorOnView));
        }

        ///    <summary>
        ///    Selects the next error on the current view
        ///    </summary>
        public void GoToNextErrorOnView()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GotoNextErrorOnView));
        }

        /// <summary>
        /// Shows the message associated with the selected error
        /// </summary>
        public void ShowCurrentErrorMessage()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowCurrentErrorMessage));
        }
        #endregion

        #region Work Offline
        /// <summary>
        /// Toggles WorkOffline On/Off
        /// </summary>
        public void WorkOffline()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.WorkOffline));
        }

        #endregion

        #region Form Direction
        /// <summary>
        /// Checks if the current direction of the form is left to right
        /// </summary>
        public bool IsFormDirectionLeftToRight
        {
            get
            {
                return Convert.ToBoolean(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IsFormDirectionLeftToRight),typeof(uint)),CultureInfo.CurrentCulture
                    );
            }
        }

        /// <summary>
        /// Checks if the current direction of the form is right to left
        /// </summary>
        public bool IsFormDirectionRightToLeft
        {
            get
            {
                return Convert.ToBoolean(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.IsFormDirectionRightToLeft),typeof(uint)),CultureInfo.CurrentCulture
                    );
            }
        }
        #endregion

        #region Text Direction

C# Definition:

/// Sets the direction of the text to be the default direction
        /// </summary>
        public void SetTextDirectionDefault()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetTextDirectionDefault));
        }

        /// <summary>
        /// Sets the direction of the text to be left to right
        /// </summary>
        public void SetTextDirectionLeftToRight()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetTextDirectionLeftToRight));
        }

        /// <summary>
        /// Sets the direction of the text to be right to left
        /// </summary>
        public void SetTextDirectionRightToLeft()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetTextDirectionRightToLeft));
        }
        #endregion

        #region Submit
        /// <summary>
        /// Performs the submit action of the form
        /// </summary>
        public void Submit()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.Submit));
        }

        /// <summary>
        /// Gets the text on the InfoPath Submit Button
        /// </summary>
        public string SubmitButtonCaption
        {
            get
            {
                return Convert.ToString(
                    ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.GetSubmitButtonCaption),typeof(string)),CultureInfo.CurrentCulture
                    );
            }
        }
        #endregion

        #region Views
        /// <summary>
        /// Switches a view to the viewName
        /// </summary>
        /// <param name="viewName">name of the view</param>
        public void SwitchView(string viewName)
        {
            if (string.IsNullOrEmpty(viewName))
            {
                throw new InvalidDataException("The view name entered is either null or empty.\nPlease use a valid view.");
            }
            if (IsFormLoaded)
            {
                try
                {
                    InfoPathControl.XmlForm.ViewInfos.SwitchView(viewName);
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to switch view",ex);
                }
            }
        }

        /// <summary>
        /// Gets an array of Views within the current form template
        /// Will not return the hidded views
        /// </summary>
        /// <returns>String array of View names</returns>
        public string[] GetViews()
        {
            string[] formTemplateViews = null;

            if (IsFormLoaded)
            {
                try
                {
                    // Check the view count, only proceed if there are views
                    if (InfoPathControl.XmlForm.ViewInfos.Count > 0)
                    {
                        // instantiate the array to hold the views to return
                        formTemplateViews = new string[InfoPathControl.XmlForm.ViewInfos.Count];

                        // Cycle through the views and populate the array
                        for (int viewCounter = 0; viewCounter < InfoPathControl.XmlForm.ViewInfos.Count; viewCounter++)
                        {
                            // If the HideName property is true, then we should NOT add this to the view collection
                            // this would indicate that the solution designer did not intend for this view to be 
                            // available in the View menu.
                            if (!((ViewInfo)InfoPathControl.XmlForm.ViewInfos[viewCounter]).HideName)
                            {
                                string viewName = string.Empty;
                                viewName = InfoPathControl.XmlForm.ViewInfos[viewCounter].Name;
                                // Add the view name to the array
                                formTemplateViews[viewCounter] = viewName;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new HostedException("An error occurred while attempting to get the list of views", ex);
                }
            }
            return formTemplateViews;

        }
        #endregion

        #region Dialogs
        #region Borders and Shading
        /// <summary>
        /// Shows the borders and shadings dialog
        /// </summary>
        public void ShowBordersShadingDialog()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowBordersShadingDialog));
        }
        #endregion

        #region Digital Signatures
        /// <summary>
        /// Shows the Digital Signatures Dialog
        /// </summary>
        public void ShowDigitalSignaturesDialog()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowDigitalSignaturesDialog));
        }
        #endregion

        #region SetLanguage
        /// <summary>
        /// Sets the language the editor uses using the set language dialog
        /// </summary>
        public void SetLanguage()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowSetLanguageDialog));
        }

        #endregion

        #region Merge Forms
        /// <summary>
        /// Opens the Merge Forms dialog
        /// </summary>
        public void MergeForms()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowMergeFormDialog));
        }
        #endregion

        #region Import Form Data
        /// <summary>
        /// Opens the Import form data dialog
        /// </summary>
        public void ImportFormData()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowImportFormDataDialog));
        }
        #endregion

        #region Export
        /// <summary>
        /// Shows the export to web dialog
        /// </summary>
        public void ExportToWeb()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowExportToWebDialog));
        }

        /// <summary>
        /// Shows the export to PDF or XPS dialog
        /// </summary>
        public void ExportToPDFXPS()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowExportToPDFXPSDialog));
        }

        /// <summary>
        /// Shows the export to excel dialog
        /// </summary>
        public void ExportToExcel()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ShowExportToExcelDialog));
        }
        #endregion

        #endregion

        #region Asian Text Settings

        /// <summary>
        /// Sets whether spacing between asian text and numbers is on or off
        /// </summary>
        public void SetAutoSpaceBetweenAsianTextAndNumbers()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetAutoSpaceBetweenAsianTextAndNumbers));
        }

        /// <summary>
        /// Set whether spacing between asian text and latin text is on or off
        /// </summary>
        public void SetAutoSpaceBetweenAsianAndLatinText()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.SetAutoSpaceBetweenAsianAndLatinText));
        }

        /// <summary>
        /// Turns of all spacing adjustments for asian text
        /// </summary>
        public void ClearAutoSpace()
        {
            ChkResult(ExecuteCommand(FormControlCommandIds.CommandIds.ClearAutoSpace));
        }

        #endregion

        #region Is Form Loaded
        /// <summary>
        /// Checks whether or not a document is loaded
        /// </summary>
        /// <returns>true if a document is loaded, otherwise false</returns>
        public bool IsFormLoaded
        {
            get
            {
                if (InfoPathControl.XmlForm == null)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        #endregion
    }
Anterior_ContentBaseDefinitionSiguienteIOleDocumentSite

Última actualización hace 1 año