Пример #1
0
        private string FindFile(FindFileDelegate finder)
        {
            Option oldOptions       = this.Options;
            IntPtr nativePathBuffer = IntPtr.Zero;

            try {
                nativePathBuffer = Marshal.AllocCoTaskMem(
                    sizeof(char) * (Constants.MaxPath + 1));
                this.Options = oldOptions | Option.Debug;
                if (!finder(nativePathBuffer))
                {
                    int lastError = Marshal.GetLastWin32Error();
                    throw new SymbolHandlingException(string.Format("Error : 0x{0:X8}", lastError));
                }
                return(Marshal.PtrToStringUni(nativePathBuffer));
            }
            finally {
                this.Options = oldOptions;
                if (IntPtr.Zero != nativePathBuffer)
                {
                    Marshal.FreeCoTaskMem(nativePathBuffer);
                }
            }
        }
Пример #2
0
 /// <summary>
 /// НАчать добавление новых сигнатур
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void button_begin_scan_add_sign_Click(object sender, EventArgs e)
 {
     calcPi = new FindFileDelegate(ScanStart);
     calcPi.BeginInvoke(ScanningType.AddNewSigns, null, null);
 }
Пример #3
0
 /// <summary>
 /// Начтать поиск
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void toolStripButtonStart_Click(object sender, EventArgs e)
 {
     calcPi = new FindFileDelegate(ScanStart);
     calcPi.BeginInvoke(ScanningType.CheckSigns, null, null);
 }