I have been working on a document conversion feature for converting a docx file to a pdf file using MOSS 2007. The SPFile.Convert() call is being made in the ItemAdded event and the ItemFileConverted event is fired fine as well. The eventing seems to be working fine, but the IsConvertedFile and SourceLeafName properties of the converted SPFile instance are not always set by the conversion process. This is what I was attempting to use to determine if a call to SPFile.Convert should be made.
In digging into the code for SPFile IsConvertedFile, GeneratingConverterId and SourceLeafName properties, it seems these are based on SPFile.Properties "vti_dttransformerid" and "vti_dtparentleafname". The problem is, these two properties are not being set consistently whenever I have code in my ISPConversionProcessor.PostProcess() implementation in which I was hoping to do some post processing of the file. If there is no code in the PostProcess method (only the runDefaultPostProcessing = true; statement) the properties are set more consistently.
I have some additional details here in a Wiki pageabout what is going on, but using .NET Reflector to determine where these fields are updated from hit a brick wall at OWSTIMER.EXE (I could find all of the reads for the properties, but even the HtmlLauncher and LoadBalancer services had no mention of these properties).
Has anyone done a complete Document Conversion implmentation and used the SPFile.IsConvertedFile and SPFile.SourceLeafName properties successfully?