예제 #1
0
 public static void SetFsPluginCallbacks(ProgressCallback progress, ProgressCallbackW progressW, LogCallback log, LogCallbackW logW, RequestCallback request, RequestCallbackW requestW, FsCryptCallback crypt, FsCryptCallbackW cryptW)
 {
     if (progressCallback == null)
     {
         progressCallback = progress;
     }
     if (progressCallbackW == null)
     {
         progressCallbackW = progressW;
     }
     if (logCallback == null)
     {
         logCallback = log;
     }
     if (logCallbackW == null)
     {
         logCallbackW = logW;
     }
     if (requestCallback == null)
     {
         requestCallback = request;
     }
     if (requestCallbackW == null)
     {
         requestCallbackW = requestW;
     }
     if (fsCryptCallback == null)
     {
         fsCryptCallback = crypt;
     }
     if (fsCryptCallbackW == null)
     {
         fsCryptCallbackW = cryptW;
     }
 }
예제 #2
0
        public static void SetCryptCallbackW(FsCryptCallbackW cryptProcW, int cryptNumber, int flags)
        {
            _callSignature = "SetCryptCallbackW";
            try {
                TcCallback.SetFsPluginCallbacks(null, null, null, null, null, null, null, cryptProcW);
                if (Plugin.Password == null)
                {
                    Plugin.Password = new FsPassword(Plugin, cryptNumber, flags);
                }

                TraceCall(TraceLevel.Warning, $"CryptoNumber={cryptNumber}, Flags={flags}, {cryptProcW.Method.MethodHandle.GetFunctionPointer().ToString("X")}");
            }
            catch (Exception ex) {
                ProcessException(ex);
            }
        }