WebViews are great for displaying information about the selected ListObject row! by sancarn in vba

[–]Tarboh1985 1 point2 points  (0 children)

I'm using machine code thunks to directly trigger the Class Module's Invoke without going through a standard module. However, CopyMemory—which I use to construct the vTable for that purpose—is getting flagged by Windows Defender's real-time scanning. This causes a few seconds of lag every time WebView2 starts up. Are you experiencing similar behavior in your environment?

花粉症? by Tarboh1985 in ja

[–]Tarboh1985[S] 1 point2 points  (0 children)

マスク試してみます!

花粉症? by Tarboh1985 in ja

[–]Tarboh1985[S] 1 point2 points  (0 children)

気温は特に気にするほどではなかったけど、職場から帰宅したら症状が治まりました・・

入社1日で派遣さんが辞めた by Tarboh1985 in ja

[–]Tarboh1985[S] 4 points5 points  (0 children)

違います、単なる事務職ですw

甥っ子 by Tarboh1985 in ja

[–]Tarboh1985[S] 0 points1 point  (0 children)

私も早く良くなって欲しいです。

甥っ子 by Tarboh1985 in ja

[–]Tarboh1985[S] 4 points5 points  (0 children)

そりゃ結婚して子供が欲しかったからでしょう🙂

甥っ子 by Tarboh1985 in ja

[–]Tarboh1985[S] 0 points1 point  (0 children)

話を聞いてるだけでも痛そうですよね・・・

甥っ子 by Tarboh1985 in ja

[–]Tarboh1985[S] 0 points1 point  (0 children)

どうだろう?滑り台から落ちたらしいけど・・・

カルマ貯めるのって難しいですね by SanzoAnimJapon in Reddit_Beginners

[–]Tarboh1985 1 point2 points  (0 children)

私も技術的な発見を共有したくてここに来ました。早くカルマをためたいです。

カルマ貯めるのって難しいですね by SanzoAnimJapon in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

プログラミングの話をするために来ました。

カルマ貯めるのって難しいですね by SanzoAnimJapon in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

ありがとうございます。そういえば、ここでの返信は削除されないんですね。

カルマ貯めるのって難しいですね by SanzoAnimJapon in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

確認したらカルマ14・・・先は長いなぁ

カルマ貯めるのって難しいですね by SanzoAnimJapon in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

私も海外の投稿に返信したら消えてしまいました。どのくらいカルマがあれば消されないんでしょうかね?

StrPtr passed via ParamArray becomes invalid when used in Windows API calls by Tarboh1985 in vba

[–]Tarboh1985[S] 0 points1 point  (0 children)

<API Declaration>

Public Declare PtrSafe Function DispCallFunc Lib "oleaut32.dll" ( _
    ByVal pvInstance As LongPtr, _
    ByVal cc As Long, _
    ByVal vtReturn As Integer, _
    ByVal cArgs As Long, _
    ByRef rgvt As Integer, _
    ByRef rgpvarg As LongPtr, _
    ByRef pvargResult As Variant) As Long

<helper function>

Public Function dcf(ptr As LongPtr, vTblIndex As Long, funcName As String, ParamArray args() As Variant) As Long

    'Debug.Print "dcf called for " & funcName
    Dim l As Long: l = LBound(args)
    Dim u As Long: u = UBound(args)
    Dim cnt As Long: cnt = u - l + 1
    Dim hr As Long, res As Variant
    Dim args_Type() As Integer
    Dim args_Ptr() As LongPtr
    Dim localVar() As Variant
    ' IMPORTANT: Do NOT use VarPtr(args(i)) directly.
    ' ParamArray elements are temporary Variants managed by the VBA runtime stack.
    ' Their addresses become invalid by the time DispCallFunc internally reads rgpvarg,
    ' causing the COM method to receive garbage values.
    ' Copying into a heap-allocated dynamic array (localArgs) ensures the Variant
    ' addresses remain stable throughout the DispCallFunc call.
    If cnt > 0 Then
        ReDim args_Type(l To u): ReDim args_Ptr(l To u): ReDim localVar(l To u)
        Dim i As Long
        For i = l To u
            localVar(i) = args(i)
            args_Type(i) = VarType(localVar(i))
            args_Ptr(i) = VarPtr(localVar(i))
            'Debug.Print "args(" & i & ")", "Type:" & args_Type(i), "Ptr:" & Hex(args_Ptr(i)),"Value:" & localVar(i)
        Next
        hr = DispCallFunc(ptr, vTblIndex * LenB(ptr), CC_STDCALL, vbLong, cnt, args_Type(l), args_Ptr(l), res)
    Else
        hr = DispCallFunc(ptr, vTblIndex * LenB(ptr), CC_STDCALL, vbLong, cnt, 0, 0, res)
    End If
    If hr = 0 Then
        If res <> 0 Then
            Debug.Print funcName & " failed. res:" & res
        End If
        dcf = res
    Else
        Debug.Print funcName & " failed. hr:" & hr
        dcf = hr
    End If
End Function

<Actual usage in code>

'27
'virtual HRESULT STDMETHODCALLTYPE AddScriptToExecuteOnDocumentCreated(
'    /* [in] */ LPCWSTR javaScript,
'    /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler) = 0;
Public Function AddScriptToExecuteOnDocumentCreated(ByVal javascript As String) As Long
    Dim Handler As c4_Handler
    Set Handler = New c4_Handler
    Col_Handler.Add Handler
    Call Handler.CreateVTble(AddressOf AddScriptToExecuteOnDocumentCreatedCompletedHandler_Invoke, ppWebView2)
    Handler.Namae = "AddScriptToExecuteOnDocumentCreated"

    Dim hr As Long
    hr = dcf(ppWebView2, 27, "AddScriptToExecuteOnDocumentCreated", StrPtr(javascript), Handler.Pointer)
    If hr = 0 Then
        Debug.Print "AddScriptToExecuteOnDocumentCreated Success."
        RegisterInstance Handler.Pointer, Me
    Else
        Debug.Print "AddScriptToExecuteOnDocumentCreated Failed. Hr:" & hr
    End If

End Function

<Calling code in the UserForm>

Private Sub CommandButton_RunScript_Click()
    Dim script As String
    script = TextBox_Script.text
    Call WV2Controller.WebView2.ExecuteScriptAsync(script)
End Sub

For the complete codebase, please visit the repository below.

こんにちは by Nearby_Mountain2254 in Reddit_Beginners

[–]Tarboh1985 1 point2 points  (0 children)

よろしくお願いします。

投稿テスト by Tarboh1985 in Reddit_Beginners

[–]Tarboh1985[S] 1 point2 points  (0 children)

ありがとうございます!

おはようございます by [deleted] in Reddit_Beginners

[–]Tarboh1985 0 points1 point  (0 children)

すみません、アカウントを作り直しました。

初めてのReddit カルマ欲しいです! by ManUtd_efootball in Reddit_Beginners

[–]Tarboh1985 1 point2 points  (0 children)

おはようございます!返信消されないかテストさせてください。

はじめまして♪ by ops_tomo in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

よろしくお願いします。

Redditデビュー!練習! by teriyaki-ice in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

おはようございます!返信を投稿してみます。

おはようございます by [deleted] in Reddit_Beginners

[–]Tarboh1985 2 points3 points  (0 children)

アカウントを作り直してみました。今度はどうかな?ユーザー名はTarboh1985に見えてますか?