Skip to content

Commit e6c672b

Browse files
committed
version update
added support for windows metafile images further simplified image processing
1 parent 6894441 commit e6c672b

11 files changed

+21
-14
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
##
44
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
55

6-
images/
6+
## images/
77

88
# User-specific files
99
*.rsuser

dist/tBUserFormConverter_win32.dll

0 Bytes
Binary file not shown.

dist/tBUserFormConverter_win64.dll

0 Bytes
Binary file not shown.

dist/tBUserformConverterSetup.exe

-923 Bytes
Binary file not shown.

src/source/About.twin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Class About
55

66
Sub New()
77
lblInfo.Caption = "Author: GCUser99" & vbCrLf & _
8-
"Version: v2.2" & vbCrLf & _
8+
"Version: v2.3" & vbCrLf & _
99
"Description: A VBIDE add-in (complied with twinBASIC) that converts VBA UserForms for use in twinBASIC."
1010
lblWebsite.Caption = "https://github.com/GCuser99/VBA-UserForm-to-twinBASIC"
1111
Set Me.Icon = GetImageFromResources("transparent.ico", "IMAGES")

src/source/Converter.tbform

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"HasDC": true,
2727
"Height": 370,
2828
"HelpContextID": 0,
29-
"Icon": "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7u7u7uwAAQAQEAAAABAQEAAD3u7u7u7ukAAAAAEACO7u7u7u7BAAAAAAAAEBABAAABnu7u7u7u2RAAAAAAEY7u7u7u7sAAEAABABAAAQAAABXe7u7u7u7pAAAAAAAQju7u7u7uwAAQABAAAAAAAAAAPO7u7u7u7tkQAQEBAAGO7u7u7u7AEAABAQAQABAAARPO7u7u7u7u2QABAQEBAI7u7u7u7sAQEAEAABAAEAABXO7u7u7u7u7qAAAAAAARju7u7u7uwAAAAAAAAAEAESju7u7u7u7u7uwBAAAAAACO7u7u7u7AAAABAAAAAQAnzu7u7u7u7u7u7mAQAAAAAY7u7u7u7sAAABAAERASWd7u7u7u7u7u7u7u2CARERERju7u7u7uwREREAAkaK3u7u7u7u7u7u7u7u7u27u7u7vO7u7u7u7bu7u7zd7u7u7u7u7u7u7u7uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
29+
"Icon": "",
3030
"Index": -1,
3131
"KeyPreview": false,
3232
"Left": 0,
@@ -73,10 +73,11 @@
7373
"gridHeight": 10,
7474
"gridWidth": 10,
7575
"lockedControls": [],
76+
"multiColoredGrabbers": false,
7677
"showGrid": true,
7778
"showOutlines": false
7879
},
79-
"__lastUpdateMarker": 1563196456,
80+
"__lastUpdateMarker": 2325407002,
8081
"_children": [
8182
{
8283
"Anchors": {
@@ -303,8 +304,7 @@
303304
"WhatsThisHelpID": 0,
304305
"Width": 208,
305306
"_className": "OptionButton",
306-
"_clsid": "{33AD4F00-6699-11CF-B70C-00AA0060D393}",
307-
"_isExclusiveWithinContainer": true
307+
"_clsid": "{33AD4F00-6699-11CF-B70C-00AA0060D393}"
308308
},
309309
{
310310
"Alignment": "tbLeftJustify",
@@ -360,8 +360,7 @@
360360
"WhatsThisHelpID": 0,
361361
"Width": 215.666666666667,
362362
"_className": "OptionButton",
363-
"_clsid": "{33AD4F00-6699-11CF-B70C-00AA0060D393}",
364-
"_isExclusiveWithinContainer": true
363+
"_clsid": "{33AD4F00-6699-11CF-B70C-00AA0060D393}"
365364
},
366365
{
367366
"Anchors": {
@@ -773,7 +772,6 @@
773772
}
774773
],
775774
"_className": "Form",
776-
"_clsid": "{33AD4F38-6699-11CF-B70C-00AA0060D393}",
777-
"hDC": 1560351248
775+
"_clsid": "{33AD4F38-6699-11CF-B70C-00AA0060D393}"
778776
}
779777
]

src/source/FormProcessing.twin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
' ==========================================================================
2-
' tBUserFormConverter v2.2
2+
' tBUserFormConverter v2.3
33
'
44
' A VBIDE add-in (complied with twinBASIC) that converts VBA UserForms for use in twinBASIC.
55
'

src/source/ImageProcessing.twin

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@ Module ImageProcessing
2525
Const CRYPT_STRING_NOCRLF As Long = &H40000000& 'Do not append any new line characters to the encoded string.
2626
Const CRYPT_STRING_NOCR As Long = &H80000000& 'Only use the line feed (LF) character (0x0A) for a new line.
2727

28+
Private Enum PictureTypeConstants
29+
vbPicTypeNone = 0
30+
vbPicTypeBitmap = 1
31+
vbPicTypeMetafile = 2
32+
vbPicTypeIcon = 3
33+
vbPicTypeEMetafile = 4
34+
End Enum
35+
2836
Public Function GetImageString(pic As stdole.IPictureDisp) As String
2937
Dim bytes() As Byte
3038
If pic Is Nothing Then Exit Function
3139
bytes = BytesFromPicture(pic)
32-
'offset determined through some reverse engineering...
33-
GetImageString = Mid(ToBase64Array(bytes), 73)
40+
GetImageString = ToBase64Array(bytes)
3441
End Function
3542

3643
Public Function ToBase64Array(bytes() As Byte) As String
@@ -46,9 +53,11 @@ Module ImageProcessing
4653

4754
Public Function BytesFromPicture(pic As IPictureDisp) As Byte()
4855
Dim pb As PropertyBag
56+
Dim headerOffset As Long = 55
4957
Set pb = New PropertyBag
5058
pb.WriteProperty "Image", pic
51-
BytesFromPicture = pb.Contents
59+
'skip the stdPicture header on output
60+
BytesFromPicture = MidB(pb.Contents, headerOffset)
5261
End Function
5362

5463
Public Function GetTransparentIconString() As String
318 Bytes
Binary file not shown.
2.58 KB
Binary file not shown.

0 commit comments

Comments
 (0)