コード例 #1
0
ファイル: VbaFolder.cs プロジェクト: sandboxorg/VBASync
            public override IList <byte> GetBytes(Encoding projEncoding)
            {
                var ret = new List <byte>();

                ret.AddRange(base.GetBytes(projEncoding));
                if (!string.IsNullOrEmpty(OriginalLibId))
                {
                    var originalLibIdBytes = projEncoding.GetBytes(OriginalLibId);
                    ret.AddRange(BitConverter.GetBytes((short)0x0033));
                    ret.AddRange(BitConverter.GetBytes(originalLibIdBytes.Length));
                    ret.AddRange(originalLibIdBytes);
                }
                var twiddledLibIdBytes = projEncoding.GetBytes(LibIdTwiddled);

                ret.AddRange(BitConverter.GetBytes((short)0x002F));
                ret.AddRange(BitConverter.GetBytes(twiddledLibIdBytes.Length + 10));
                ret.AddRange(BitConverter.GetBytes(twiddledLibIdBytes.Length));
                ret.AddRange(twiddledLibIdBytes);
                ret.AddRange(BitConverter.GetBytes(0));
                ret.AddRange(BitConverter.GetBytes((short)0));
                if (!string.IsNullOrEmpty(NameRecordExtended))
                {
                    var nameRecordExtendedBytes        = projEncoding.GetBytes(NameRecordExtended);
                    var nameRecordExtendedUnicodeBytes = Encoding.Unicode.GetBytes(NameRecordExtended);
                    ret.AddRange(BitConverter.GetBytes((short)0x0016));
                    ret.AddRange(BitConverter.GetBytes(nameRecordExtendedBytes.Length));
                    ret.AddRange(nameRecordExtendedBytes);
                    ret.AddRange(BitConverter.GetBytes((short)0x003e));
                    ret.AddRange(BitConverter.GetBytes(nameRecordExtendedUnicodeBytes.Length));
                    ret.AddRange(nameRecordExtendedUnicodeBytes);
                }
                ret.AddRange(BitConverter.GetBytes((short)0x0030));
                var extendedLibIdBytes = projEncoding.GetBytes(LibIdExtended);

                ret.AddRange(BitConverter.GetBytes(extendedLibIdBytes.Length + 30));
                ret.AddRange(BitConverter.GetBytes(extendedLibIdBytes.Length));
                ret.AddRange(extendedLibIdBytes);
                ret.AddRange(BitConverter.GetBytes(0));
                ret.AddRange(BitConverter.GetBytes((short)0));
                ret.AddRange(OriginalTypeLib.ToByteArray());
                ret.AddRange(BitConverter.GetBytes(Cookie));
                return(ret);
            }
コード例 #2
0
ファイル: VbaFolder.cs プロジェクト: sandboxorg/VBASync
            public override List <string> GetConfigStrings()
            {
                var ls = new List <string> {
                    $"LibIdTwiddled={LibIdTwiddled}",
                    $"LibIdExtended={LibIdExtended}"
                };

                if (!string.IsNullOrEmpty(NameRecordExtended))
                {
                    ls.Add($"NameRecordExtended={NameRecordExtended}");
                }
                ls.Add($"OriginalLibId={OriginalLibId}");
                if (OriginalTypeLib != Guid.Empty)
                {
                    ls.Add($"OriginalTypeLib={OriginalTypeLib.ToString("B")}");
                }
                if (Cookie > 0)
                {
                    ls.Add($"Cookie={Cookie}");
                }
                return(ls);
            }