如何从Silverlight调用PInvoke OpenFile

时间:2014-07-30 15:00:17

标签: silverlight silverlight-5.0

在完全信任,OOB应用程序中,我需要能够通过PInvoke打开文件(例如PDF或tiff)。

PInvoke.net网站将此作为签名:

[DllImport("kernel32.dll", BestFitMapping = false, ThrowOnUnmappableChar = true)]
static extern int OpenFile([System.Runtime.InteropServices.MarshalAs(UnmanagedType.LPStr)]string lpFileName, out OFSTRUCT lpReOpenBuff, OpenFileStyle uStyle);

但是,当我将其放入测试Silverlight应用程序时,VS将OFStruct标记为“无法解析符号”

OpenFileStyle也会以同样的方式被标记。

如何修改签名以便使用?

1 个答案:

答案 0 :(得分:0)

好的,我现在明白了。 OFStruct是"用户定义的类型"需要在正在使用PInvoke调用的项目中定义。

在PInvoke.net站点上,它为结构提供了C#代码。所以我复制并粘贴到应用程序中。然后Signature找到了它并且我能够使用PInvoke。

同样适用于OpenFileStyle枚举。

格雷格