<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hello,<div><br><div><div>On 2011-01-20, at 12:46 AM, Frank Krueger wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hello,</div><div><br></div><div>I am writing to inquire into the inclusion of QuickLook bundles into MonoMac apps.</div><div><br></div><div>QuickLook bundles are little plugins loaded by the Quick Look daemon in OS X to generate thumbnails and previews of documents. The are little Mach-O executables that implement 4 functions. These functions are supposed to be written in a re-entrant fashion since they will be used over and over on possibly 1 thread. (This behavior can be prevented, but it would be best if we support it.)</div>
<div><br></div><div>Thread safety:&nbsp;<a href="http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/Articles/QLImplementationOverview.html%23//apple_ref/doc/uid/TP40005020-CH6-SW1">http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/Articles/QLImplementationOverview.html%23//apple_ref/doc/uid/TP40005020-CH6-SW1</a></div>
<div><br></div><div>It would be a wonderful dream world if I could create an assembly that contains a class that implements those 4 functions and have that packaged up into a bundle and included in my MonoMac app.</div><div><font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><blockquote type="cite"><div>Any thoughts on how much work it would be to create such a packager?</div></blockquote><div><br></div>So the actual converting a project to this type of bundle isn't horribly difficult. &nbsp;We'll use a static library initializer to start up the VM, and then proxy the C methods to a defined API contract on some .exe or .dll which the user specifies. &nbsp;I can whip this up without too much work, the question I have is around tooling. &nbsp;Since QL projects can be installed system wide, or bundled into an existing application, this probably needs to be its own entire project type in MD with some special rules to handle the above (likely just a different flag to mmp). &nbsp;I think it should be a .dll as well, since there is no real "entry point" or static void Main() equivalent in the API that I see. &nbsp;Then we just need to figure out how to have a MonoMac app rely on this app and put it in the right place when we want to embed it.</div><div><br></div><div>Hutch? Thoughts?</div><div>Miguel? Thoughts?</div><div><br></div><div>-g</div><div><br></div></div></body></html>