internal static DialogResourceData TryCreate(ResourceLang lang, Byte[] rawData) { if (rawData.Length < 18) { return(null); } try { MemoryStream stream = new MemoryStream(rawData); BinaryReader rdr = new BinaryReader(stream, Encoding.Unicode); Boolean isTemplateEx = true;; Byte[] templateExSignature = new Byte[] { 0x01, 0x00, 0xFF, 0xFF }; for (int i = 0; i < templateExSignature.Length; i++) { if (rawData[i] != templateExSignature[i]) { isTemplateEx = false; break; } } Dialog d = isTemplateEx ? BuildEx(rdr) : Build(rdr); DialogResourceData ret = new DialogResourceData(lang, rawData); ret.Dialog = d; return(ret); } catch (IOException) { return(null); } catch (AnolisException) { return(null); } }
public override ResourceData FromResource(ResourceLang lang, Byte[] data) { return(DialogResourceData.TryCreate(lang, data)); }