Skip to content

Instantly share code, notes, and snippets.

@wolf99
wolf99 / BetterComboBox.vb
Last active August 29, 2015 14:27
A VB.NET control, derived from ComboBox, that adds a SelectedIndexChanging event to allow the change to be cancelled
'This is a VB version of the C# code by Mike Bevers as of 19 Aug 2015 12:07 at
'http://www.mikebevers.be/blog/2010/02/extended-combobox-with-a-selection-changing-event/
'Usage:
'Private Sub BetterComboBox1_SelectedIndexChanging( _
' sender As System.Object, _
' e As System.ComponentModel.CancelEventArgs _
') Handles BetterComboBox1.SelectedIndexChanging
'
' If True Then
@wolf99
wolf99 / FillComboBox.vb
Last active September 2, 2015 17:14
Extension to fill a VB.NET ComboBox control from a collection or list of strings
' Requires `Imports System.Runtime.CompilerServices`
Module Extensions
<Extension()>
Public Function Fill(Of T)(cb As Control, cc As ICollection(Of T)) As Integer
Dim cbc As ComboBox = CType(cb, ComboBox)
Dim n As Integer = 0
If cc.Count = 0 Then
Return False
End If
For Each cn In cc
@wolf99
wolf99 / GetSerialPortNames.vb
Last active September 2, 2015 17:14
Get a collection serial port names using VB.NET
Private Function GetSerialPortNames() As List(Of String)
Dim PortNames As New List(Of String)
For Each PortName In My.Computer.Ports.SerialPortNames
PortNames.Add(PortName)
Next
Return PortNames
End Function
@wolf99
wolf99 / AddLogLine.vb
Created August 22, 2016 12:13
Extension to add strings to a VB.NET ListBox for output or console logging.
'Usage: ListBox1.AddLogLine("Log this!")
Imports System.Runtime.CompilerServices
Module FormExtensions
Delegate Sub UpdateLog(lb As ListBox, line As String)
<Extension()>
Public Sub AddLogLine(lb As ListBox, line As String)
If (lb.InvokeRequired) Then 'Invoke from the GUI thread if called from a different one
lb.Invoke(New UpdateLog(AddressOf AddLogLine), lb, line)
@wolf99
wolf99 / cmock_return_thru_ptr.c
Last active February 7, 2017 16:35
An example showing how to use cmock's ReturnThrePtr mock type
/* bar.c */
#include foo.h
int bar (void)
{
int a = 5, b = 0;
e = foo(a, &b); /* Note b is local, thus test won't know its address. */
/* ... use b ... */
return e;
}
@wolf99
wolf99 / perfect_numbers.c
Created March 31, 2017 08:16
MISRA classify_number()
kind classify_number(int n)
{
kind class = error;
if (n > 0) {
int buf = aliquot_sum(n);
if (buf > n) {
class = abundant_number;
} else if (buf < n) {
class = deficient_number;
} else {
@wolf99
wolf99 / DerivedClassEnumerator.cs
Created March 31, 2017 14:44
Class that lists all the types derived from a given type. Taken from http://stackoverflow.com/a/6944605/1292918
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace FooProgram
{
public static class DerivedClassEnumerator
{
// Class that list all the types derived from a given type
@wolf99
wolf99 / ConvertWithSign.vb
Last active April 20, 2017 12:33
VB.NET extensions to allow conversion from an unsigned type to the equivalent signed type, and vice versa, while preserving the sign bit, by using a structure with explicit layout to simulate a union.
Option Strict On
Option Explicit On
Imports System.Runtime.InteropServices
Imports System.Runtime.CompilerServices
Module ConvertWithSign
' These extensions allow conversion from an unsigned type to the equivalent
' signed type, and vice versa, while preserving the sign bit.
'
@wolf99
wolf99 / GetDictionaryOfProperties.cs
Last active May 5, 2017 08:15
C# function to get a Dictionary of the names and values of the properties of a given object
using System.Reflection
public class Gists
{
public Dictionary<string, object> GetDictionaryOfProperties(o As Object)
{
Dictionary<string,string> Properties;
Properties = (from x in o.GetType().GetProperties() select x).ToDictionary
( x => x.Name, x => x.GetGetMethod().Invoke (o, null));
@wolf99
wolf99 / GetDictionaryOfProperties.vb
Last active May 5, 2017 08:15
VB.NET function to get a Dictionary of the names and values of the properties of a given object
Option Strict On
Option Explicit On
Imports System.Reflection
Module Gists
Public Function GetDictionaryOfProperties(ByRef o As Object) As Dictionary(Of String, Object)
Dim Properties As Dictionary(Of String, Object) = New Dictionary(Of String, Object)
#If Not USE_LOOP