C++ Upload to Amazon S3

Here’s an example of uploading a file via a POST to Amazon S3: void TestPostAmazonS3Upload(void) { CkHttpRequest req; CkHttp http; bool success; // Any string unlocks the component for the 1st 30-days. success = http.UnlockComponent(“Anything”); if (success != true) { printf(“%s\n”,http.lastErrorText()); return; } req.SetFromUrl(“http://something.s3.amazonaws.com/”); req.UseUpload(); req.AddParam(“key”,”file1005.dat”); req.AddParam(“AWSAccessKeyId”,”AA6SXJPBBBBGSZHEJ6ZZ”); req.AddParam(“acl”,”private”); req.AddParam(“success_action_redirect”,”http://www.something.com/blahblah.php”); req.AddParam(“policy”,”abcdefhijmF0aW9uIjogIjIwMDktMTItMDFUMTI6MDA6MDAuMDAwWiIsImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAidHlwaG9vbmRyaXZlIn0sWyJzdGFydHMtd2l0aCIsIiRrZXkiLCIiXSx7ImFjbCI6ICJwcml2YXRlIn0seyJzdWNjZXNzX2FjdGlvbl9yZWRpcmVjdCI6ICJodHRwOi8vd3d3LnR5cGhvb250b29scy5jb20vdHlwaG9vbmRyaXZlc3RvcC5waHAifSxbInN0YXJ0cy13aXRoIiwiJENvbnRlbnQtVHlwZSIsIiJdXX0=”); req.AddParam(“signature”,”abcdefwFQPpsAAAuCUY2m7g/kkw=”); req.AddParam(“Content-Type”,”application/octet-stream”); // The file must be added last for […]

ATL/COM – Checking to see if Contained within Web Browser

There are two possible ways to create an ActiveX within HTML.  The first is via an Object HTML tag: <object name=”crypt2″ width=0 height=0 classid=”clsid:3352B5B9-82E8-4FFD-9EB1-1A3E60056904″ standby=”Loading Chilkat Crypt2…” type=”application/x-oleobject” codebase=”http://www.chilkatsoft.com/download/ChilkatCrypt2.cab”> </object> The 2nd way is to dynamically instantiate it within Javascript: var crypt; crypt = new ActiveXObject(“Chilkat.Crypt2”); If the object is created from within Javascript (via CreateObject), then the ActiveX has […]

Binding to an IP

Question: I have a question about ‘binding’ Chilkat EMAIL to a specific socket in .NET. The reason why I’m asking is; the servers on which I’m using the component have multiple NIC’s and each NIC can have multiple IP’s assigned. I need to software-select through which IP the mails shall be sent. Answer: The Chilkat Mailman object provides a ClientIpAddress property […]

Visual Basic Font.Charset Property

Charset Name Charset Value (Hex) Charset Value (Decimal) Code-Page ID ANSI_CHARSET 0x00 0 1252 DEFAULT_CHARSET 0x01 1 SYMBOL_CHARSET 0x02 2 SHIFTJIS_CHARSET 0x80 128 932 HANGUL_CHARSET 0x81 129 949 GB2312_CHARSET 0x86 134 936 CHINESEBIG5_CHARSET 0x88 136 950 GREEK_CHARSET 0xA1 161 1253 TURKISH_CHARSET 0xA2 162 1254 HEBREW_CHARSET 0xB1 177 1255 ARABIC_CHARSET 0xB2 178 1256 BALTIC_CHARSET 0xBA 186 1257 RUSSIAN_CHARSET 0xCC 204 1251 […]

XML Search Clarification – Breadth-first Search

The Chilkat XML component library (for C#, VB.NET, ASP.NET, ASP, VB6, FoxPro, Delphi, C++, C, Perl, Ruby, Python, Java, etc.) has a number of Search* methods. These methods search for a node in the XML document matching a specific criteria. For example, SearchForTag searches for the 1st node that has a tag with a specific value. The general form of […]

Reserved characters in filenames?

Question: What are the reserved characters we have to be aware of when naming folders? Answer: It depends on the operating system and filesystem-type of the computer. For example, in Windows, open Windows Explorer, select any file, press F2 to change the filename, and then try to insert a ‘?’ into the filename. You’ll see a tooltip with the set […]

Understanding FTP (a collection of useful links)

The File Transfer Protocol (FTP) and Your Firewall / Network Address Translation (NAT) Router / Load-Balancing Router Wikipedia: File Transfer Protocol Active FTP vs. Passive FTP, a Definitive Explanation The FTP2.DetermineSettings Method Issue when an FTP Server is behind a NAT Router FTP Blockers – TCP/IP Port Filtering and Anti-Virus Deep Inspection Firewalls and Passive FTP (also known as Stateful […]

FTP case sensitivity

Question: I had a question regarding the ChangeRemoteDir method, however. Is it case sensitive? If so, is there any way to force the method to ignore the case and just check for the correct spelling? Also, do I have to call ChangeRemoteDir for each folder level or can I, for example, call ChangeRemoteDir(“folder1/folder2/folder3”)? Answer: The case sensitivity depends on the […]

Equivalent HTML Form and Chilkat HTTP POST

Any HTML form POST can be duplicated programmatically with the Chilkat HTTP component. As an example, consider this HTML: <html> <body> <form name=”input” action=”http://www.chilkatsoft.com/testPostHandler.asp” method=”post”> Arg1: <input type=”text” name=”arg1″> <br>(Arg2 is a hidden input)<br> <input type=”hidden” name=”arg2″ value=”abc123″> Arg3 <input type=”text” name=”arg3″> <input type=”submit” value=”Submit”> </form> </body> </html> It submits a POST to http://www.chilkatsoft.com/testPostHandler.asp. The ASP that receives the post […]

Message-ID and ReplyToMessageID

Question: Reading through the documentation I don’t see access to the Message-ID. 1. Is it possible to set the Message-ID to string value? ( like a GUID string value ) 2. After a read-confirmation/reply, is there a property to access the ‘ReplyToMessageId’ value? Answer: The GetHeaderField and AddHeaderField methods may be used to set or access any header field.  The […]