Hi everybody!
Maybe there is somebody who can give me a bit of help; I am about to give up:
I need to ‘translate’ in C# the function GetOpenFileName to include a FileOpenDlg in a Dlg template containing other components, but I cannot handle in C# the reference to the Dialog template resource and the call back function.
Below is the code:
[ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Auto )]
public class OpenFileName
{
public int structSize=0;
public IntPtr dlgOwner= IntPtr.Zero;
public IntPtr hInstance=IntPtr.Zero;
public String filter = null;
public String Customfilter= null;
public int maxCustFilter=0;
public int filterIndex=0;
public String file= null;
public int maxFile = 0;
public String fileTitle= null;
public int maxFileTitle= 0;
public String initialDir= null;
public String title = null;
public int flags=0;
public Int16 fileOffset=0;
public Int16 fileExtension=0;
public String defExt= null;
public IntPtr custData=IntPtr.Zero;
public IntPtr fnHook= IntPtr.Zero;
public String TemplateName=null;
}
[ DllImport( "Comdlg32.dll", CharSet=CharSet.Auto )]
public static extern bool GetOpenFileName([ In, Out ] OpenFileName ofn );
……..
…….
private void cmdOpenClick(object sender, System.EventArgs e)
{
OpenFileName ofn=new OpenFileName();
ofn.structSize=Marshal.SizeOf(ofn);
ofn.dlgOwner= this.Handle;
ofn.hInstance=IntPtr.Zero;
ofn.filter="Program(*.exe)\0*.exe\0Text Files (*.txt;*.doc;*.wri)\0*.txt;*.doc;*.wri\0All (*.*)\0*.*\0\0";;
ofn.Customfilter = null;
ofn.maxCustFilter=0;
ofn.filterIndex=0;
ofn.file=new String(new char[_MaxPath]);
ofn.maxFile=ofn.file.Length;
ofn.fileTitle=new String(new char[_MaxFile]);
ofn.maxFileTitle=ofn.fileTitle.Length;
ofn.initialDir="C:\\";
ofn.title="Open file";
ofn.flags= OFN_EXPLORER|OFN_ENABLETEMPLATE|OFN_ENABLEHOOK;
ofn.fileOffset=0;
ofn.fileExtension=0;
ofn.defExt= null;
ofn.custData=IntPtr.Zero;
ofn.fnHook=??????????????????????????;
ofn.TemplateName=????????????????????;
bool risp=GetOpenFileName(ofn);
}
Any pretty good ideas? Many tanks in advance!!
mino