發表文章

目前顯示的是 9月, 2024的文章

Marshalling

圖片
  Option Strict On Imports System.Runtime.InteropServices Module Program     Declare Unicode Sub BeginTest Lib ".\..\..\..\..\..\x64\Debug\Dll_ForMarshalling.dll" (                    str As String, FunSelector As Int32)     Declare Unicode Sub Get_TestData Lib ".\..\..\..\..\..\x64\Debug\Dll_ForMarshalling.dll" (        <InAttribute(), OutAttribute(), MarshalAs(UnmanagedType.LPWStr)> ByRef str As Text.StringBuilder, nMAxCount As Int32)     Sub Main(args As String())         For ii As Int32 = 1 To 1             Known_Folder_Desktop()             If (ii <= 1) Then Console.ReadKey()             Dim stringbuilder As New Text.StringBuilder(4 << 20)             BeginTest(" Desktop ", 1)             Get_Test...

AutoSaveSettings in WindowsForms on it exit

圖片
  Imports System.ComponentModel Imports System.Drawing.Text Imports System.Runtime.InteropServices Public Class Form1     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         Width = My.Settings.width         Height = My.Settings.height         Location = New Drawing.Point(My.Settings.X, My.Settings.Y)     End Sub     Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing         My.Settings.previous_datetime = $"{DateTime.Now:yyyy/MM/dd hh:mm:ss}"         My.Settings.visit_number += 1         My.Settings.X = Location.X         My.Settings.Y = Location.Y         My.Settings.width = Width         My.Settings.height = Height     End Sub     Private Sub Form1_Paint(sender As Object, e As PaintEvent...

Creating a classlibrary to imitate Excel interface

圖片
Imports System.Reflection Imports System.Runtime.InteropServices <ComClass(ImitateExcelClass.ClassId, ImitateExcelClass.InterfaceId, ImitateExcelClass.EventsId)> Public Class ImitateExcelClass : Implements IImitateExcel     Public Const ClassId As String = "4704E096-9263-48D3-8527-1FB63BD0E1F9"     Public Const InterfaceId As String = "22937F2C-23C6-4E64-B503-1F3D304657F4"     Public Const EventsId As String = "1E0B3789-117B-49DC-9EF3-76C43FB9EDCA"     Public Sub New()         MyBase.New()         _Property1 = "readonly Property1"         _Property2 = "ImitateExcelClass Property2"     End Sub     Dim _Property1 As String     Public ReadOnly Property Property1 As String Implements IImitateExcel.Property1         Get             Return _Property1         End Get     End Proper...