Home
Simple
Simple
Detailed
West WindClient Tools
What's new
Software Requirements
Registering the Shareware version
License
Support and reporting bugs
Getting Started with wwClient
Installation
Using the West Wind Client Tools with the Shareware Version
Updating from a Previous or Shareware Version
Including Libraries in your Projects
Class Reference
West Wind Internet Protocols
Registering the Shareware version
Web Connection Updates with standalone wwIPStuff
Deploying
Quick Start Examples
Access Http content over the Web
Uploading a file via HTTP
Sending SMTP Email
Sending Messages with Html and Text body
Sending SSL Email with wwSmtp (GMail, Live, etc.)
Download and Uploading FTP Files
Uploading an FTP File
Domain name lookups
Class wwHttp
Security and Authentication
wwHttp and TLS 1.2 Support
OnHttpBufferUpdate
OnHttpPostConnect
AddPostFile
AddPostKey
Get
Post
Put
Delete
HttpGet
AddHeader
GetHttpHeader
HttpCancelDownload
HttpClose
HttpConnect
HttpGetEx
HttpGetExAsync
HttpGetHeader
HttpPing
InternetCrackUrl
WinInetSetTimeout
GetSystemErrorMsg
GetMessageFromResultCode
SetOption
GetCertificates
cErrorMsg
cContentType
cExtraHeaders
chttpheaders
cHttpVerb
cHTTPProxyByPass
cHTTPProxyName
cHttpProxyUserName
cHttpProxyPassword
cLink
cResultCode
cResultCodeMessage
cpassword
cserver
cUserAgent
cusername
nServiceFlags
nconnecttimeout
nerror
lCacheRequest
lAllowGZip
lDecodeUtf8
lHttpCancelDownload
lIgnoreCertificateWarnings
lUseLargePostBuffer
nClientCertificateIndex
nHttpConnectType
nHttpServiceFlags
nHttpPostMode
nhttpworkbuffersize
oPostStream
Class wwSmtp
Updating from wwIPStuff to wwSmtp
Logging wwSmtp Sessions
AddAlternateView
AddAttachment
AddHeader
ClearAttachments
Close
Connect
Dispose
SendMail
SendMailAsync
SendMessage
cAlternateContentType
cAlternateText
cAttachment
cBccList
cCCList
cContentType
cErrorMsg
cMailServer
cMessage
cPassword
cPriority
cRecipient
cReplyTo
cSenderEmail
cSenderName
cSubject
cUserAgent
cUsername
lError
lReturnReceipt
lUseSsl
nMailMode
nServerPort
nTimeout
oSmtp
Class wwFtpClient
OnFtpBufferUpdate
Connect
DowloadFile
UploadFile
ListFiles
Close
AddCertificate
ChangeDirectory
CreateDirectory
DeleteDirectory
DeleteFile
ExecuteCommand
ExecuteDownloadCommand
Exists
cErrorMsg
cHttpProxyName
nHttpProxyPort
cLogFile
cPassword
cServer
cUsername
lIgnoreCertificateErrors
lpassiveftp
lUseTls
nPort
nTimeout
oBridge
oFtpClient
Class wwSftpClient
ChangeDirectory
Close
Connect
CreateDirectory
DeleteDirectory
DeleteFile
DownloadFile
ExecuteCommand
ExecuteDownloadCommand
Exists
ListFiles
RenameFile
UploadFile
OnFtpBufferUpdate
cErrorMsg
cftpserver
cftpsource
cftptarget
cHttpProxyByPass
cHttpProxyName
cHttpProxyPassword
cHttpProxyPort
cHttpProxyUsername
cLogFile
cPassword
cPrivateKeyFile
cPrivateKeyFilePassword
cUsername
lcanceldownload
lEnableProgressEvents
lIgnoreCertificateErrors
lpassiveftp
lUseTls
nftpworkbuffersize
nPort
nTimeout
oBridge
oFtpClient
oProgressEventObject
Class wwSocket
Using wwSocket Code
connect
disconnect
receive
WaitFor
WaitForSize
send
GetLog
Listen
sendreceive
socketsend
cerrormsg
nBufferSize
nLastReadSize
lLogSession
lstripnulls
nerror
ntimeout
Class wwDotnetBridge
What is wwDotnetBridge?
Requirements
wwDotnetBridge Features
Accessing Arrays, Lists and Dictionaries with ComArray
Parameter Fixups for InvokeMethod(), GetProperty() and SetProperty()
Unable to load CLR Instance Error
wwDotNetBridge Examples
Main Functionality Example
Using ComArray Instances for Arrays an Collections
Accessing Collections
Accessing IEnumerable Lists
Using FromEnumerable() to access Generic Collections
Generic Type Limitations in .NET
Retrieving Exception Information
Subscribing to Events
Frequently Asked Questions
Explict .NET Runtime Version Specification
Viewing .NET Type and Assembly Info with Reflector
Loading Assemblies from Network Locations
Method Not Found Errors
Type is not loaded. Please make sure you call LoadAssembly First Errors
Creating and using .NET Value Types in FoxPro
Referencing Embedded/Nested Types
Passing Values by Reference
Creating a Struct Type
Using .NET .config Files for Configuration
Type not Loaded Errors
Controlling the JSON.NET Version used
Calling Async or Task returning Methods
.NET Wrapper Types and Value Fixups
Class ComArray
Constructor
Constructor
Add
AddDictionaryItem
AddItem
AssignFrom
AssignTo
Clear
CreateArray
CreateDictionary
CreateItem
CreateList
FromEnumerable
GetInstanceTypename
GetItemTypename
Item
ItemRaw
Remove
RemoveItem
SetItem
Count
Instance
Class ComValue
Constructor
NewGuid
GetGuid
GetValue
GetTypeName
SetByte
SetChar
SetDbNull
SetDecimal
SetEnum
SetSingle
SetGuid
SetInt16
SetInt64
SetLong
SetSingle
SetUInt32
SetUInt64
SetValueFromCreateInstance
SetValueFromCreateGenericInstance
SetValueFromEnum
SetValueFromInvokeMethod
SetValueFromInvokeStaticMethod
SetValueFromProperty
SetValueFromStaticProperty
SetValueFromSystemConvert
ToString
Value
Class wwDotnetCoreBridge
GetwwDotNetBridge
GetwwDotNetCoreBridge
InitializeDotnetCoreVersion
InitializeDotnetVersion
Init
ConvertToDotNetValue
CreateArray
CreateComValue
CreateInstance
CreateInstanceOnType
DisposeInstance
GetEnumString
GetEnumValue
GetProperty
GetPropertyRaw
GetIndexedProperty
GetDictionaryItem
GetStaticProperty
InvokeMethod
InvokeMethodAsync
Class AsyncCallbackEvents
OnCompleted
OnError
InvokeMethod_ParameterArray
InvokeStaticMethod
InvokeStaticMethodAsync
InvokeTaskMethodAsync
LoadAssembly
SetProperty
SetStaticProperty
SubscribeToEvents
Unload
ToString
ToJson
cErrorMsg
lError
oLastException
Class wwDotnetBridge (Support Functions)
CreateInstanceFromFile
ComArrayToCollection
CursorToDataSet
DataSetToCursors
DataSetToXmlAdapter
FromJson
FromXml
GetLoadedAssemblies
GetType
GetTypeFromName
Load
RunThread
ToXml
XmlAdapterGetCursor
XmlAdapterToCursors
XmlStringToDataSet
Custom Type Conversions
Using ConvertToDotNetValue() for unsupported Types
DataSets Results are converted in XmlAdapters
Guid Results are returned as ComGuid Instance
Type Casting Numbers to match .NET Types
Passing Binary Values to .NET
Class wwSQL
How Connections are managed by wwSQL
Calling Stored Procedures
AddParameter
AddSql
BeginTransaction
Close
Commit
Connect
EnableUnicodeToAnsiMapping
Execute
ExecuteNonQuery
ExecuteStoredProcedure
InsertBinaryField
InsertDataFromCursor
ReadBinaryField
Rollback
SetAsyncMode
SQLBuildInsertStatementFromObject
SqlBuildUpdateStatementFromObject
SqlCancel
aErrors
cConnectString
cErrorMsg
cErrorMsg2
cSkipFieldsForUpdates
cSql
csqlcursor
lError
lNamedParameters
lParameterReset
lUseConnection
nAffectedRecords
nErrorNo
nOdbcErrorNo
nSqlHandle
nSqlResult
nTimeout
Class wwBusinessObject
wwBusinessObject requirements and assumptions
wwBusinessObject Examples
Using the wwBusiness Object Wizard
Building nested business objects to handle relationships
Using wwBusiness with SQL Server data
How Primary Keys are created
Class wwBusinessChildCollection
Add
Remove
Clear
LoadFromCursor
SaveToCursor
Item
oRows
nCount
Load
LoadBase
Save
New
GetBlankRecord
Delete
AddValidationError
Backup
Validate
Close
CreateChildObject
ConvertData
CreateNewId
CreateTable
Execute
ExecuteNonQuery
Find
GetProperty
ImportData
Open
Query
Reindex
SetError
SetProperty
SetSqlObject
StatusMessage
UpdateStructure
lCompareUpdates
calias
cServerUrl
cconnectstring
cdatapath
cerrormsg
cfilename
cidtable
cpkfield
cresultxml
cSkipFieldsForUpdates
csql
csqlcursor
lerror
lThrowOnError
lValidateOnSave
ndatamode
nresultmode
nupdatemode
oHTTPSQL
oData
oSql
oValidationErrors
vResult
Class wwJsonSerializer
JSON Serialization Formats
Creating Dynamic Objects for Serialization with wwDynamic
JsonSerialize() and JsonDeserialize() wrappers
Serialize
Deserialize
DeserializeCursor
FormatJson
MapPropertyName
Property
PropertyExclusionList
FormattedOutput
PropertyNameOverrides
TrimStringValues
AssumeUtcDates
DefaultEmptyDate
PropertyNameCharacterFilter
IgnoreDollarVars
Class wwJsonServiceClient
oSerializer
oHttp
cServiceUrl
cErrorMsg
lNoUtf8Decoding
lError
lSaveRequestData
cRequestData
cResponseData
CreatewwHttp
CreateSerializer
AddHeader
CallService
Library wwUtils
AParseString
AppendToFile
ArrayToCollection
CacheFile
CharToBin
CollectionToArray
CollectionToCursor
ContentTypeFromExtension
CopyObject
CopyObjectProperties
CopyTree
CursorToCollection
CursorToObjectArray
DCOMCnfgServer
DCOMLaunchPermissions
DecodeHtml
DeleteFiles
DeleteTree
DetokenizeString
DisplayMemo
EncodeHtml
EndsWith
ExecuteCommandLine
Extract
File2Var
FileAttributes
FileSize
FileTime
FixComErrorMessage
FixPreTags
FlattenSql
ForceTableRefresh
FormatValue
FormatString
FromIsoDateString
GetAppStartPath
GetAttribute
GetDirectoryName
GetFilename
GetFullPath
GetPassword
GetRegExObject
GetRelativePath
GetUniqueId
GetURLEncodedKey
GetUrlEncodedValues
GetWords
GoUrl
GravatarLink
Href
HTMLColor
HumanizedDate
InputForm
IsAdmin
IsCOMObject
IsDir
IsDotNet
IsDotnetCore
IsNullOrEmpty
IsNumber
IsWinnt
JsonDate
JsonString
JsonBool
LaunchVsWebServer
LogString
LongPath
MailLink
MergeText
MergeTextFromFile
MimeDateTime
NoEmptyDate
OpenFileDialog
OpenExclusive
Path
PropertyDump
RegisterDotNetComponent
RegisterOleServer
RemoveUrlEncodedKey
RenderAspScript
ReplaceText
ReplaceTextAndDelimiters
SafeCommand
SafeEval
SanitizeHtml
SaveFileDialog
SetAcl
SetUrlEncodedKey
ShellExecute
ShortDate
ShortPath
ShortTime
ShowHTML
ShowText
ShowXML
SplitString
StartsWith
StringFormat
StripHTML
StripUtf8Bom
TimeToCStrict
ToIsoDateString
TokenizeString
TrimWhiteSpace
URLDecode
URLEncode
WrCursor
Class wwAPI
ActivateWindow
CharToBin
CopyImage
CreateProcess
CreateProcessEx
CreateThumbnail
CreateShortcut
GetCaptchaImage
GetImageInfo
GetSpecialFolder
GetTimeZone
GZipCompressString
GZipUncompressString
HashMD5
InstallPrinterDriver
MapNetworkDrive
ReadImage
ResizeImage
RotateImage
WinApi_GetStartupModuleFilename
WinApi_NullString
WinApi_SendMessage
WinApi_Sleep
WinApi_GetEnvironmentVariable
WinApi_GetSystemErrorMsg
WriteImage
Is64Bit
Ping
aProfileSections
CopyFile
CreateGUID
DecodeDbf
EncodeDbf
EnumKey
FromUtcTime
GetClipboardText
GetComputerName
GetDomainFromIp
GetIpFromDomain
GetLastError
GetMonitorStatus
GetProfileString
GetSystemDir
GetSystemErrorMsg
GetTempPath
GetUserName
GetUtcTime
ImpersonateUser
InstallPrinter
LogonUser
MessageBeep
PlayWave
ReadRegistryString
RevertToSelf
WriteProfileString
WriteRegistryString
West Wind XML Converter
XML structures
Required Files
wwXML Object Import/Export Rules
Multiple cursors in a single XML document
XML Formatting Issues
Class wwXML (High Level Methods)
AddDomAttribute
AddComLineBreak
AddDomNode
AddElement
ADOtoXML
ADOXMLToCursor
CreateErrorXML
CursorToADOXML
CursorToRS
cursortoxml
DataSetXMLToCursor
EncodeXML
FoxValueToXmlValue
Frequently Asked Questions
GetObjVar
Load
LoadUrl
LoadXML
ObjectToXML
SQLCursorToXML
xmltocursor
XMLToObject
XmlTypeToFoxType
XMLValueToFoxValue
XPathXmlValueToFoxValue
cBody
cDocRootName
cErrorMsg
cPropertyExclusionList
VFP Class Property Exclusion Filters
cSchemaName
cSchemaUrl
cXMLHeader
lRecurseObjects
bSkipEmptyElements
lStripTypePrefix
lUseFoxTypes
nCreateDataStructure
nEncoding
Class wwXML (Low Level Methods)
CreateDataStructureDTD
CreateDataStructureSchema
CreateCursorFromSchema
CreateCursorXML
CreateADOXML
BuildCursorFromXML
ParseXMLToCursor
CreateObjectStructureSchema
CreateObjectStructureXML
CreateObjectXML
BuildObjectFromXML
ParseXMLToObject
ParseADOXMLToCursor
ParseXmlToArray
CreateArrayXML
CreateCollectionXml
CreateObjectStructureDTD
ParseXMLToCollection
Class MarkdownParser
Markdown (global function)
Parse
CreateParser
lEncodeScriptBlocks
lSanitizeHtml
lNoHtmlAllowed
Class MarkdownParserExtended
Parse
Class wwEncryption
ComputeHash
EncryptString
TripleDES Encryption Example
AES Encyrption Example
Working Encryption Sample
DecryptString
GetChecksumFromBytes
GetCheckSumFromFile
SetBinHexMode
SetBinHexMode
SetComputeHashSaltBytes
SetEncryptionKey
SetEncryptionProvider
Class wwPDF
PDF Drivers and Configuration
Generic PDF Printer Drivers and wwPdfPrinterDriver
GhostScript and wwGhostScript
XFRX and wwXFRX
Adobe Distiller wwDistiller
AmyUni and wwAmyUni
ActivePdf and wwActivePdf
wwPDF Examples
PDF Browser display issues
PrintReport
PrintReportToString
cErrorMsg
cPrinterDriver
wwCollection Classes
Class wwCollection
Add
Clear
Find
FindIndex
InsertAt
Item
Remove
Set
UpdateItem
aItems[]
Count
RequireUniqueItems
Class wwNameValueCollection
Add
Clear
FastAdd
Get
GetIndex
GetKey
InsertAt
Item
Remove
ToAttributeString
UpdateItem
aItems[]
Count
Class wwStack
Peek
Pop
Push
aItems[]
Count
Class wwValidationError
cMessage
cObjectName
Class wwValidationErrors
AddError
AddErrors
ToHtml
ToString
Class wwCache
How wwCache works
When and How to use Caching
AddItem
Clear
Expire
GetItem
GetOrAddItem
IsCached
Open
Reindex
Remove
cCacheCursor
cFixedFileName
nDefaultCacheTimeout
Class wwFileStream
WriteFile
Clear
Dispose
ToString
ToBlob
Write
WriteLine
nLength
Class wwConfig
Load
Save
cFileName
cMode
cRegNode
cRegPath
cSubName
lStripTypePrefix
Class wwScripting
Example of using wwScripting
Sections: Line is too long Errors
Class wwScriptingResponse
Clear
End
GetOutput
Write
lResponseEnded
Class wwScriptingHttpResponse
AddCacheHeader
AddCookie
AddForceReload
AppendHeader
BasicAuthentication
Redirect
RenderHttpHeader
Expires
HttpVersion
Status
MergeText
RenderAspScript
CompileAspScript
ExecScript
cCompiledPath
cErrorMsg
cErrorHeader
lEditErrors
lError
cBasePath
lSaveVfpSourceCode
oException
cScriptCode
cScriptResponseClass
cVFPCode
lNoVersionCheck
lShowFullErrorInfo
lStopOnError
lThrowException
Class wwEval
Evaluate
EvaluateClassMethod
Execute
ExecuteCommand
MergeText
EvalTimer
cErrorMessage
cResultType
lAllowEvalRecursion
lError
nError
nErrorLine
Result
vErrorResult
Class wwZipArchive
ZipFiles
AppendFiles
UnzipFolder
UnzipFile
GetZipEntries
Class wwXMLState
GetProperty
GetXML
LoadXML
SaveXML
SetProperty
cRootNode
Class wwXMLAdapter
GetCursor
GetDiffGram
GetTable
Class wwDynamic
__PropertyNameOverrides
__Reference
wwDynamic and FoxPro Reserved Properties
Init
AddProp
GetProp
Class wwRegEx
MultiLine
Matches
IgnoreCase
Global
Test
Replace
Match
aRestoreExpressions
aStripExpressions
Tools
The TextWrapper Utility
The GetConstants Utility
Table and Index Structure Exporter
Deprecated Components
Class wwFtp (deprecated)
FTP Connection Troubleshooting
FTP Event Programming
onftpbufferupdate
FtpGetFileEx
FtpSetDirectory
FtpClose
FtpCommand
FtpConnect
FtpCreateDirectory
FTPDeleteFile
FtpGetFile
FTPRemoveDirectory
FTPRenameFile
FTPSendFile
FtpSendFileEx
FtpSendFileEx2
aFTPDir
hftpsession
lcanceldownload
nCurrentFileSize
lPassiveFTP
nFtpPort
nftpworkbuffersize
cftpserver
cftpsource
cftptarget
nftpbinary
cErrorMsg
cftpserver
cftpsource
cftptarget
cHttpProxyByPass
cHttpProxyName
cHttpProxyPassword
cHttpProxyUsername
cPassword
cserver
cUserAgent
cUsername
hIPSession
nConnectTimeout
nError
nftpbinary
nHttpConnectType
nServiceFlags
UnzipFiles
UnzipFolder
Class wwHttpAsync (deprecated)
navigatecomplete
addpostkey
cancelrequest
startrequest
cerrormsg
clink
cpassword
cresultbuffer
cserver
cusername
lbusy
lerror
lsecure
nbuffersize
ntimeout
oip
Class wwSFTP (deprecated)
FtpClose
FtpConnect
FtpCreateDirectory
FtpDeleteFile
FtpGetFile
FtpGetFileEx
FtpListFiles
FtpRemoveDirectory
FtpRenameFile
FtpSendFile
FtpSendFileEx
FtpSetDirectory
Init
Load
OnFtpBufferUpdate
cFtpServer
cPassword
cPrivateKeyFile
cPrivateKeyFilePassword
cUsername
nFtpPort
oSFTP
oSFTPClient
ZipFiles
ZipFolder
Class wwPop3 (deprecated)
Retrieving all messages in a mail box
Message and Attachment object properties
Connect
DeleteMessage
GetMessage
GetMessageHeader
GetMessages
ParseMultiPartMessage
Quit
aMessages
cErrorMsg
cMailServer
cPassword
cUsername
lError
lLogSession
nError
nMessageCount
nPort
oIP