Since my monologue on the IWSDAttachment object last week, it's occured to me that there's a much simpler way to explain which programming patterns you have to use when reading from or writing to WSDAPI attachments.
Here's a table that describes it. To use this table, you need to determine whether you're writing a client application or a service application, and you need to determine whether you're writing to an attachment, or reading from it. Then, look up the appropriate row in the table below, and you'll know which programming patterns you can use. The patterns are described below.
* Important note: the async pattern in the client: read scenario requires that you follow the 7-step instructions at the very end of the original attachment article, or else you risk crashing your application.
And for those of you wondering how I picked the ordering of the rows: it's the order in which a request/response pattern is seen by the client and service in a typical operation.