Skip to content

Commit 78cfa20

Browse files
authored
Add files via upload
1 parent 7ebf6b2 commit 78cfa20

File tree

4 files changed

+7
-224
lines changed

4 files changed

+7
-224
lines changed

DemoMain.twinproj

-11.6 KB
Binary file not shown.

FileDialogDemo.twinproj

-11.5 KB
Binary file not shown.

UCSBDemoVB.twinproj

-11.6 KB
Binary file not shown.

ucShellBrowse.twin

Lines changed: 7 additions & 224 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,7 +2472,7 @@ Private Const m_sVerbRedo As String = "redo" 'For Ctrl+Y redo
24722472
'
24732473
'=================================================================================
24742474
'
2475-
'---------------------------------------------------------------------------------
2475+
'--------------------------------------------------------------------------------- ' close for each entry to ensure file buffers flushed
24762476
#End Region
24772477

24782478
#Region "APIDeclares"
@@ -6982,12 +6982,6 @@ mDispSecZn = mDefDispSecZn
69826982
pvCreate
69836983
End Sub
69846984

6985-
Private Sub UserControl_Show() Handles UserControl.Show
6986-
'-- Initialize IOLEInPlaceActiveObject
6987-
Call pvInitIPAO
6988-
UserControl_Resize
6989-
End Sub
6990-
69916985
Private Function ExplorerSettingEnabled(lSetting As SFS_MASK) As Boolean
69926986
Dim lintg As Integer
69936987
Call SHGetSettings(lintg, lSetting)
@@ -14706,6 +14700,7 @@ End Sub
1470614700
ReDim ic(UBound(tButtonCaps))
1470714701
For i = 0 To UBound(tButtonCaps)
1470814702
hImg = ResIconTohIcon(CStr(tButtonIcons(i)), 16, 16)
14703+
1470914704
ic(i) = ImageList_AddIcon(himlFooter, hImg)
1471014705
Next i
1471114706
SendMessage hLVS, LVM_SETIMAGELIST, LVSIL_FOOTER, ByVal himlFooter
@@ -38229,150 +38224,16 @@ End Function
3822938224
pvShiftState = lS
3823038225
End Function
3823138226

38232-
' === Call InterfaceMethod ===============================================
38233-
' This function was made by ANDRay, wich can be found in http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?lngWId=1&txtCodeId=72856
38234-
' Private Function CallInterface(ByVal pInterface As Long, ByVal Member As Long, ByVal ParamsCount As Long, Optional ByVal p1 As Long = 0, Optional ByVal p2 As Long = 0, Optional ByVal p3 As Long = 0, Optional ByVal p4 As Long = 0, Optional ByVal p5 As Long = 0, Optional ByVal p6 As Long = 0, Optional ByVal p7 As Long = 0, Optional ByVal p8 As Long = 0, Optional ByVal p9 As Long = 0, Optional ByVal p10 As Long = 0) As Long
38235-
' Dim i As Long, t As Long
38236-
' Dim hGlobal As Long, hGlobalOffset As Long
38237-
38238-
' If ParamsCount < 0 Then Err.Raise 5 'invalid call
38239-
' If pInterface = 0 Then Err.Raise 5
38240-
38241-
' ' 5 Bytes por parametro (4 bytes + PUSH)
38242-
' ' 5 Bytes = 1 push + Puntero a interfaz
38243-
' hGlobal = GlobalAlloc(GMEM_FIXED, 5 * ParamsCount + 5 + 5 + 3 + 1)
38244-
' If hGlobal = 0 Then Err.Raise 7 'insuff. memory
38245-
' hGlobalOffset = hGlobal
38246-
38247-
' If ParamsCount > 0 Then
38248-
' t = VarPtr(p1)
38249-
' For i = ParamsCount - 1 To 0 Step -1
38250-
' Call PutMem2(hGlobalOffset, asmPUSH_imm32)
38251-
' hGlobalOffset = hGlobalOffset + 1
38252-
' Call GetMem4(t + i * 4, hGlobalOffset)
38253-
' hGlobalOffset = hGlobalOffset + 4
38254-
' Next
38255-
' End If
38256-
38257-
' ' PUSH y ponemos el puntero a la interfas
38258-
' Call PutMem2(hGlobalOffset, asmPUSH_imm32)
38259-
' hGlobalOffset = hGlobalOffset + 1
38260-
' Call PutMem4(hGlobalOffset, pInterface)
38261-
' hGlobalOffset = hGlobalOffset + 4
38262-
38263-
' ' Llamamos
38264-
' Call PutMem2(hGlobalOffset, asmCALL_rel32)
38265-
' hGlobalOffset = hGlobalOffset + 1
38266-
' Call GetMem4(pInterface, VarPtr(t)) 'äåðåôåðåíñ: íàõîäèì ïîëîæåíèå vTable
38267-
' Call GetMem4(t + Member * 4, VarPtr(t)) 'ñìåùåíèå ïî vTable, ïîñëå ÷åãî äåðåôåðåíñ îíîãî
38268-
' Call PutMem4(hGlobalOffset, t - hGlobalOffset - 4)
38269-
' hGlobalOffset = hGlobalOffset + 4
38270-
38271-
' Call PutMem4(hGlobalOffset, &H10C2&) 'ret 0x0010
38272-
' CallInterface = CallWindowProcA(hGlobal, 0, 0, 0, 0)
38273-
' Call GlobalFree(hGlobal)
38274-
' End Function
38275-
38276-
'----------------------------------------------------------------------------------------
38277-
' IOLEInPlaceActiveObject interface
38278-
'----------------------------------------------------------------------------------------
38279-
Private Sub pvInitIPAO()
38280-
' If bIPInit = False Then
38281-
' bIPInit = True
38282-
' Dim uiid As UUID
38283-
' ptrMe = ObjPtr(Me)
38284-
' With m_uIPAO
38285-
' .lpVTable = GetVTable
38286-
' Call IIDFromString(StrPtr(sIID_IOleInPlaceActive), uiid)
38287-
' Call CallInterface(ptrMe, IUnknown_Exports.QueryInterface, 2, VarPtr(uiid), VarPtr(.IPAOReal))
38288-
' .ThisPointer = VarPtr(m_uIPAO)
38289-
' End With
38290-
' End If
38291-
End Sub
38227+
3829238228

3829338229
Private Sub pvSetIPAO()
3829438230
DebugAppend "pvSetIPAO", 3
3829538231
ActivateIPAO Me
38296-
'Exit Sub
38297-
' Const IOleObject_GetClientSite As Long = 4 ' 2 From IUnknown + 2º Ordinal
38298-
' Const IOleObject_DoVerb As Long = 11
38299-
' Const IOleInPlaceSite_GetWindowContext As Long = 8 ' 2 from IUnknown + 2 IOleWindow + 4º Ordinal
38300-
' Const IOleInPlaceFrame_SetActiveObject As Long = 8 ' 2 from IUnknown + 2 IOleWindow + 4º Ordinal
38301-
' Const IOleInPlaceUIWindow_SetActiveObject As Long = 8 ' IOleInPlaceFrame inherits from IOleInPlaceUIWindow
38302-
38303-
' Const OLEIVERB_UIACTIVATE As Long = -4
38304-
' Dim uiid As UUID, lResult As Long
38305-
' Dim pOleObject As Long 'IOleObject
38306-
' Dim pOleInPlaceSite As Long 'IOleInPlaceSite
38307-
' Dim pOleInPlaceFrame As Long 'IOleInPlaceFrame
38308-
' Dim pOleInPlaceUIWindow As Long 'IOleInPlaceUIWindow
38309-
' Dim rcPos As RECT
38310-
' Dim rcClip As RECT
38311-
' Dim uFrameInfo As OLEINPLACEFRAMEINFO
38312-
38313-
' On Error GoTo e0
38314-
' Call IIDFromString(StrPtr(sIID_IOleObject), uiid)
38315-
' Call CallInterface(ptrMe, IUnknown_Exports.QueryInterface, 2, VarPtr(uiid), VarPtr(pOleObject))
38316-
' Call CallInterface(pOleObject, IOleObject_GetClientSite, 1, VarPtr(pOleInPlaceSite))
38317-
38318-
' If pOleInPlaceSite <> 0 Then
38319-
' Call IIDFromString(StrPtr(sIID_IOleInPlaceSite), uiid)
38320-
' Call CallInterface(pOleInPlaceSite, IUnknown_Exports.QueryInterface, 2, VarPtr(uiid), VarPtr(pOleInPlaceSite))
38321-
' Call CallInterface(pOleInPlaceSite, IOleInPlaceSite_GetWindowContext, 5, VarPtr(pOleInPlaceFrame), VarPtr(pOleInPlaceUIWindow), VarPtr(rcPos), VarPtr(rcClip), VarPtr(uFrameInfo))
38322-
38323-
' DebugAppend "Window=" & pOleInPlaceUIWindow & ",Frame=" & pOleInPlaceFrame & ",rc={" & rcPos.Left & "," & rcPos.Right & "," & rcPos.Top & "," & rcPos.Bottom & "}", 2
38324-
' If pOleInPlaceFrame <> 0 Then
38325-
' ' The original was pOleInPlaceFrame.SetActiveObject but IOleInPlaceUIWindow has the definition :/
38326-
' Call CallInterface(pOleInPlaceFrame, IOleInPlaceFrame_SetActiveObject, 2, m_uIPAO.ThisPointer, StrPtr(vbNullString))
38327-
' End If
38328-
' If pOleInPlaceUIWindow <> 0 Then '-- And Not m_bMouseActivate
38329-
' Call CallInterface(pOleInPlaceUIWindow, IOleInPlaceUIWindow_SetActiveObject, 2, VarPtr(m_uIPAO.ThisPointer), StrPtr(vbNullString))
38330-
' Else
38331-
' Call CallInterface(pOleObject, IOleObject_DoVerb, 6, OLEIVERB_UIACTIVATE, 0, pOleInPlaceSite, 0, UserControl.hWnd, VarPtr(rcPos))
38332-
' End If
38333-
' End If
38334-
38335-
' On Error GoTo 0
38336-
38337-
' Exit Sub
38338-
' e0:
38339-
' DebugAppend "pvSetIPAO.Error->" & Err.Description & "," & Err.Number, 4
38340-
' Resume Next
38232+
3834138233
End Sub
3834238234

3834338235
Private Sub IOleInPlaceActiveObjectVB_TranslateAccelerator(ByRef Handled As Boolean, ByRef RetVal As Long, ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr, ByVal Shift As Long) Implements IOleInPlaceActiveObjectVB.TranslateAccelerator
38344-
'If wMsg = WM_KEYDOWN Or wMsg = WM_KEYUP Then
38345-
' Dim KeyCode As Integer, IsInputKey As Boolean
38346-
' KeyCode = wParam And &HFF&
38347-
' If wMsg = WM_KEYDOWN Then
38348-
' RaiseEvent PreviewKeyDown(KeyCode, IsInputKey)
38349-
' ElseIf wMsg = WM_KEYUP Then
38350-
' RaiseEvent PreviewKeyUp(KeyCode, IsInputKey)
38351-
' End If
38352-
' Select Case KeyCode
38353-
' Case vbKeyUp, vbKeyDown, vbKeyLeft, vbKeyRight, vbKeyPageDown, vbKeyPageUp, vbKeyHome, vbKeyEnd, vbKeyReturn, vbKeyEscape
38354-
' If ListViewHandle <> 0 Then
38355-
' If ListViewFilterEditHandle = 0 Then
38356-
' If ListViewLabelInEdit = True Then
38357-
' SendMessage Me.hWndLabelEdit, wMsg, wParam, ByVal lParam
38358-
' Else
38359-
' If (KeyCode = vbKeyReturn Or KeyCode = vbKeyEscape) And IsInputKey = False Then Exit Sub
38360-
' SendMessage ListViewHandle, wMsg, wParam, ByVal lParam
38361-
' End If
38362-
' Else
38363-
' SendMessage ListViewFilterEditHandle, wMsg, wParam, ByVal lParam
38364-
' End If
38365-
' Handled = True
38366-
' End If
38367-
' Case vbKeyTab
38368-
' If IsInputKey = True Then
38369-
' If ListViewHandle <> 0 Then
38370-
' SendMessage ListViewHandle, wMsg, wParam, ByVal lParam
38371-
' Handled = True
38372-
' End If
38373-
' End If
38374-
' End Select
38375-
'End If
38236+
3837638237
Dim pMsg As MSG
3837738238
pMsg.hWnd = hwnd
3837838239
pMsg.wParam = wParam
@@ -38434,29 +38295,6 @@ End Function
3843438295
On Error GoTo 0
3843538296
End Function
3843638297

38437-
' Private Function GetVTable() As Long
38438-
' ' Set up the vTable for the interface and return a pointer to it
38439-
' If (m_IPAOVTable(0) = 0) Then
38440-
' m_IPAOVTable(1) = scb_SetCallbackAddr(1, 34, Me) ' Addref
38441-
' m_IPAOVTable(2) = scb_SetCallbackAddr(1, 33, Me) ' Release
38442-
' m_IPAOVTable(0) = scb_SetCallbackAddr(2, 32, Me) ' QueryInterface
38443-
' m_IPAOVTable(3) = scb_SetCallbackAddr(2, 31, Me) ' GetWindow
38444-
' m_IPAOVTable(4) = scb_SetCallbackAddr(2, 30, Me) ' ContextSensitiveHelp
38445-
' m_IPAOVTable(5) = scb_SetCallbackAddr(2, 29, Me) ' TranslateAccelerator
38446-
' m_IPAOVTable(6) = scb_SetCallbackAddr(2, 28, Me) ' OnFrameWindowActivate
38447-
' m_IPAOVTable(7) = scb_SetCallbackAddr(2, 27, Me) ' OnDocWindowActivate
38448-
' m_IPAOVTable(8) = scb_SetCallbackAddr(4, 26, Me) ' ResizeBorder
38449-
' m_IPAOVTable(9) = scb_SetCallbackAddr(2, 25, Me) ' EnableModeless
38450-
' '--- init guid
38451-
' ' With sIID_IOleInPlaceActiveObject
38452-
' ' .Data1 = &H117&
38453-
' ' .Data4(0) = &HC0
38454-
' ' .Data4(7) = &H46
38455-
' ' End With
38456-
' End If
38457-
' GetVTable = VarPtr(m_IPAOVTable(0))
38458-
' End Function
38459-
3846038298

3846138299
#End Region
3846238300

@@ -38492,68 +38330,16 @@ End Function
3849238330
'@22: CBDTWndProc - Details Combobox, for focus
3849338331
'@23: DTSWndProc - Detail Sizer proc, to restrict to y-axis movement only
3849438332
'@24: CtlBoxWndProc - Control box proc for Up/View/Bkm/StdBackFwd button notifications
38495-
'@25-34: IPAO
3849638333

3849738334
'If you subclass something else or create a new callback, add it above @20 as ordinal 21, not
3849838335
'at the bottom after @1. The sequence in place must not be changed.
3849938336
'--------
3850038337

38338+
'Note: This twinBASIC port is not sensitive to the order or location at this time, but best not
38339+
' to change it or add code after it for future compatibility reasons.
3850138340

3850238341

3850338342

38504-
'@34
38505-
' Private Function pvIPAO_AddRef(This As IPAOHookStruct) As Long
38506-
' pvIPAO_AddRef = CallInterface(This.IPAOReal, IUnknown_Exports.AddRef, 0)
38507-
' End Function
38508-
38509-
' Private Function pvIPAO_Release(This As IPAOHookStruct) As Long
38510-
' pvIPAO_Release = CallInterface(This.IPAOReal, IUnknown_Exports.Release, 0)
38511-
' End Function
38512-
38513-
' Private Function pvIPAO_QueryInterface(This As IPAOHookStruct, riid As UUID, pvObj As Long) As Long
38514-
' If (IsEqualGUID(riid, IID_IOleInPlaceActiveObject)) Then
38515-
' pvObj = VarPtr(This)
38516-
' Call pvIPAO_AddRef(This)
38517-
' pvIPAO_QueryInterface = 0
38518-
' Else
38519-
' pvIPAO_QueryInterface = CallInterface(This.IPAOReal, IUnknown_Exports.QueryInterface, 2, VarPtr(riid), VarPtr(pvObj))
38520-
' End If
38521-
' End Function
38522-
38523-
' Private Function pvIPAO_GetWindow(This As IPAOHookStruct, phwnd As Long) As Long
38524-
' pvIPAO_GetWindow = CallInterface(This.IPAOReal, IPAO_Exports.GetWindow, 1, VarPtr(phwnd))
38525-
' End Function
38526-
38527-
' Private Function pvIPAO_ContextSensitiveHelp(This As IPAOHookStruct, ByVal fEnterMode As Long) As Long
38528-
' pvIPAO_ContextSensitiveHelp = CallInterface(This.IPAOReal, IPAO_Exports.ContextSensitiveHelp, 1, VarPtr(fEnterMode))
38529-
' End Function
38530-
38531-
' Private Function pvIPAO_TranslateAccelerator(This As IPAOHookStruct, lpMsg As MSG) As Long
38532-
' ' Check if we want to override the handling of this key code:
38533-
' If (pvTranslateAccel(lpMsg)) Then
38534-
' pvIPAO_TranslateAccelerator = S_OK
38535-
' Else
38536-
' pvIPAO_TranslateAccelerator = CallInterface(This.IPAOReal, IPAO_Exports.TranslateAccelerator, 1, VarPtr(lpMsg))
38537-
' End If
38538-
' End Function
38539-
38540-
' Private Function pvIPAO_OnFrameWindowActivate(This As IPAOHookStruct, ByVal fActivate As Long) As Long
38541-
' pvIPAO_OnFrameWindowActivate = CallInterface(This.IPAOReal, IPAO_Exports.OnFrameWindowActivate, 1, VarPtr(fActivate))
38542-
' End Function
38543-
38544-
' Private Function pvIPAO_OnDocWindowActivate(This As IPAOHookStruct, ByVal fActivate As Long) As Long
38545-
' pvIPAO_OnDocWindowActivate = CallInterface(This.IPAOReal, IPAO_Exports.OnDocWindowActivate, 1, VarPtr(fActivate))
38546-
' End Function
38547-
38548-
' Private Function pvIPAO_ResizeBorder(This As IPAOHookStruct, prcBorder As RECT, ByVal puiWindow As Long, ByVal fFrameWindow As Long) As Long
38549-
' pvIPAO_ResizeBorder = CallInterface(This.IPAOReal, IPAO_Exports.ResizeBorder, 3, VarPtr(prcBorder), puiWindow, VarPtr(fFrameWindow))
38550-
' End Function
38551-
38552-
' Private Function pvIPAO_EnableModeless(This As IPAOHookStruct, ByVal fEnable As Long) As Long
38553-
' pvIPAO_EnableModeless = CallInterface(This.IPAOReal, IPAO_Exports.EnableModeless, 1, VarPtr(fEnable))
38554-
' End Function
38555-
38556-
3855738343
'@24
3855838344
Private Function CtlBoxWndProc(ByVal lng_hWnd As LongPtr, ByVal uMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr, ByVal uIdSubclass As LongPtr, ByVal dwRefData As LongPtr) As LongPtr
3855938345

@@ -41632,9 +41418,6 @@ End Function
4163241418
Resume Next
4163341419

4163441420
End Function
41635-
41636-
'==================================================================================================
41637-
'WARNING: DO NOT ADD ANY CODE BELOW THIS LINE. ANY NEW CODE MUST GO BEFORE ORDINAL 34 (pvIPAO_AddRef).
4163841421

4163941422
#End Region
4164041423

0 commit comments

Comments
 (0)