Ole Attachment IStorage format specifications - com

I'm trying to understand the format and specifications of Outlook Ole Attachments at the compound file level of things, the Ole Attachment in hand is a Picture (Device Independent Bitmap), I produced the Msg file by composing RTF text email with inline picture within the body text.
Opening the msg file using Structured Storage Explorer (a tool by Microsoft), I can see the attachment substorage:
I understand the structure of the Ole Attachment Object, but what I can't find anywhere is the format of the MailStream stream within the substorage. I'm asking if anyone knows the format or can point me to the documentation that helps in this case. I'm asking specifically about the MailStream, please do not answer pointing to how compound files specifications are or something similar.
Thanks in advance.

As far as I know, the first 4 bytes are dwAspect. The next 2 DWORDs are width and height.
BTW, you don't have to use Structured Storage Explorer - you can see the data in OutlookSpy (I am its author): click IMessage button, go to the GetAttachmentTable tab, double click on the attachment, select PR_ATTACH_DATA_OBJ, right click, select IMAPIProp::OpenProperty, select IID_IStorage.

Related

How to save data from javafx form to pdf?

I am trying to implement a functionality such that:
When a user clicks on save button, whole data fetched from database by javafx (scene builder)form to get stored into the pdf form.
I have done with the snapshot, but I want the data obtained via text form to be stored in in pdf file.
Can someone please help me ?
give "DynamicReports" a try, it's easy to use, and i am using it to generate PDF file in my javafx projects. simple and powerfull.
http://www.dynamicreports.org/
Not only PDF file, it can also help to generates Csv, Docs, Excel, Html, Odt, Pptx, Rtx, Text...
You have a snapshot of your scene.
You can use the JavaFX Printing API, with PrinterJob.
The trick is that when your print anything, your computer's own print spooler will ask you for a destination.
My computer offers "Microsoft Print to PDF" and "Save to PDF".
So the "PDF" feature is trivially easy. All you have to do is, figure out how to use the API.

Macro to Convert Inline Image to Attachment - MS Outlook

When I take a snippet or screenshot of something I'm working on and need to send it in an e-mail (MS Outlook), I don't always want to paste it in-line in the HTML body of the e-mail. There are times where I would like to add the image as an attachment.
In the interest of making this repetitive task a bit more efficient, is it possible for me to accomplish this without having to first save the image/screenshot and add an attachment manually? Perhaps a macro to convert an in-line image in my e-mail to an attachment on the same e-mail?
Downloading add-ons or plugin-ins is a no go; I work in a large corporate environment where this is near impossible to do.
Thank you!
What exactly do you mean by inline images? Images hosted on the remote HTTP servers and referenced by the HTML body? Or embedded image attachment referenced by the HTML body by their cid's? In the latter case, the attachments are already in the MailItem.Attachments collection.
You cannot simply convert an inline (embedded image) image into an attachment, you will need to save the inline attachment to a folder location, delete the inline attachment, and reattach the saved attachment.

Creating a Record Option on a PDF or Word Document

I am going to preface this with the question on a more general scale then go on to explain my specific issue.
Is there a way to create a word document, pdf, or anything comparable that I could add a "Record Audio" button to that would save the audio with the file as well as all the other info that might on a pdf/word form?
I know that Adobe Pro has a leave audio comment option, but I am creating this for a user and I do not want them to have to use that. The reason I need this is that I currently have a form usually gets partially filled out and then passed on with a dictation that needs to be transcribed at a later time. I am aiming to do this so that I can have the form and audio file linked and saved under one file.
If there is a way to leave the audio comment on a pdf with some javascript that is triggered by a button, I am perfectly okay with that I just have no clue how to program that (in terms of syntax, I am comfortable programming that isn't the problem lol).
I am also open to forms of documents other than pdf or word. I only mentioned these as they are the industry standard, but if there is another file type that would work around this, I am more than glad to use it!
I am using word 2013 by the way.
Thanks in advance!
You could write a TaskPane Addin that shows the audio controls. Once the recording is complete, the audio could be saved in the CustomXML parts in the document.
Then other users who receive the document and have your AddIn, will be able to listen to the recording.
I have not verified it in-depth, but it would be possible to add a button to the PDF file which creates a Sound annotation. The user should be then automatically asked (via a dialog) to record it.

Can an Outlook macro trigger its built-in import functionality?

I'm trying to automate Outlook to automatically load an iCalendar file (.ics) when it starts. I'm aware of the hooks I need to use to arrange the timing already, I just haven't been able to find quality information about what sort of automation is possible.
Since Outlook already has the ability to import iCalendar files well enough for my purposes, I'd prefer to trigger that functionality rather than write my own parsing code. Is that possible?
Depending on what you want, the answer is you cannot do it.
If you want to "import" the ics file you cannot do it alone, you would need for example redemption see here Visual Studio Forum Because MS moves their links often here is a quote from there
“Outlook has no built-in methods to import an ICS file into a calendar item using code. However, a 3rd party library called Redemption (www.dimastr.com/redemption) does have that ability. The SafeAppointmentItem.Import function is called with a file path and item type. So if it's called with the file path where you saved the attachment and a type of 7 (olVCal) you can do what you want. “ Original link is:http://groups.google.co.uk/group/microsoft.public.office.developer.outlook.vba/browse_thread/thread/e4656ad0c5b68b89/d356ce07aeae783d?hl=en&lnk=st&q=import+.ics+file+into+outlook+by+codes#d356ce07aeae783d
So what are you options or what else can you do.
First I assume you are working in something like the application_startup event.
you could "shell" the file - which would have the same effect as double clicking on it.
see here MSDN shell with examples For this you would need the path to your ics file.
But for me in your position, I would be first trying to get the person or thing generating the ics file to change OR I would be just treating it like a text file, parsing the information (which should not be too hard given it is an expected format) and creating my own calendar item in outlook.

PowerPoint Programmatically open/play mediaobject in add-in

I am working on a VSTO PowerPoint 2010 add-in which will allow the user to playback a media object (video or audio) in a windows form using windows media player control.
In which way can I extract the embedded media object an play it back to the user?
I have access to the objects name, will that be enough to get to the embedded object?
Kinda yes and no.
The "No". Through VBA and VSTO, the answer is no or at least I've never seen it done before and have no idea. I've looked at this before and didn't find it to be possible.
The "Kinda Yes". Any embedded media in 2007/2010 can be extracted through Open XML. Here's where the "kinda" comes in - you can extract it so long as you know what you're extracting. Sounds easy enough, but it's not. When you insert a video or audio piece, it gets embedded into a shape. That shape is given a name[1], which is the file name of the audio/video file. So if I insert the sample video that comes with Win7, my shape name that holds the video is "wildlife.wmv". It can easily be renamed by an end user who knows how to do so (the Selection Pane in the client) and in that case, it would be impossible to find based on just having the name.
But if it hasn't been renamed, you would open an in-memory copy of your .pptx in Open XML, search on the name in each of the slides in the /ppt/slides/ folder and once found, use it's relationship Id to locate it's name in the /ppt/media folder. Then you can pull it out, save it to disk, play it, etc.
1 PowerPoint, however, renames the file based on an internal naming convention. My "wildlife.wmv" is renamed "media1.wmv" inside the package. Subsequent media items would be named media2.wmv, media1.mpg, etc.