[DllImport("kernel32.dll", SetLastError=true)]
static extern IntPtr BeginUpdateResource(string pFileName,
[MarshalAs(UnmanagedType.Bool)]bool bDeleteExistingResources);
<DllImport("kernel32.dll", SetLastError := False)> _
Public Shared Function BeginUpdateResource(ByVal pFileName As String, _
<MarshalAs(UnmanagedType.Bool)> ByVal bDeleteExistingResources As Boolean) As IntPtr
End Function
None.
calls SetLastError. the last error can be retrieved with Marshal.GetLastWin32Error().
Please add some!
internal void DelFile(ArrayList fileNames) {
IntPtr hResource = BeginUpdateResource(mFileName, false);
if (hResource.ToInt32() == 0) {
throw new Win32Exception(Marshal.GetLastWin32Error());
}
foreach (String fileName in fileNames) {
if (UpdateResource(hResource, "FILE", fileName,
MakeLangId(LANG_ENGLISH, SUBLANG_ENGLISH_US), null, 0) == false) {
throw new Win32Exception(Marshal.GetLastWin32Error());
}
}
if (EndUpdateResource(hResource, false) == false) {
throw new Win32Exception(Marshal.GetLastWin32Error());
}
}
Do you know one? Please contribute it!