News:

Download Pelles C here: http://www.smorgasbordet.com/pellesc/

Main Menu

Recent posts

#21
Chit-Chat / Re: Merry Christmas and Happy ...
Last post by Marco - December 25, 2025, 11:26:32 AM
Merry Christmas and Happy 2026 to all.
#22
Chit-Chat / Re: Merry Christmas and Happy ...
Last post by John Z - December 24, 2025, 11:59:29 PM
Merry Christmas to all Pelle acolytes and
Happy 2026 for all.


John Z
#23
Chit-Chat / Re: Merry Christmas and Happy ...
Last post by Michele - December 24, 2025, 09:42:13 PM
Best whishes to all
#24
Chit-Chat / Re: Merry Christmas and Happy ...
Last post by Vortex - December 24, 2025, 12:08:48 PM
Happy 2026 to all the forum members.
#25
Chit-Chat / Merry Christmas and Happy New ...
Last post by TimoVJL - December 24, 2025, 11:45:50 AM
Merry Christmas-time to Pelle and others !
#26
Chit-Chat / Re: Downloaded Pelles C 13
Last post by Vortex - December 24, 2025, 06:56:02 AM
Hi hewurfeljr,

Welcome to the Pelles C Forum.
#27
Downloads / Pelles C v13 Wayback Machine L...
Last post by MrBcx - December 24, 2025, 02:12:28 AM
This will hopefully make it easier for anyone wanting to download the latest version of Pelles C.

For 64-bit Windows 7/8/10 host, targeting 32-bit or 64-bit Windows Vista/7/8/10.   13.00   May 21, 2025

https://web.archive.org/web/20250806144937fw_/https://www.smorgasbordet.com/pellesc/1300/setup.exe


If Pelles website ever returns, this post can be edited or removed, as needed.


#28
Chit-Chat / Re: Downloaded Pelles C 13
Last post by John Z - December 24, 2025, 01:34:41 AM
Welcome to the forum.

John Z
#29
Chit-Chat / Downloaded Pelles C 13
Last post by hewurfeljr - December 24, 2025, 12:47:01 AM
I was able to download Pelles C 13 from the web site saved
on the Wayback Machine of the Internet Archive. I installed
it on Windows 11 and it works great.

Best Henry
#30
Work in progress / Re: USB microscope
Last post by TimoVJL - December 23, 2025, 10:55:47 AM
Actually i want to find an old code from 2014 - 2015,
when i tested COM typelib from quartz.dll

With this code device is available, even WinMCI stopped working with it.
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include "dshow.h"

#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "oleaut32.lib")
#pragma comment(lib, "uuid.lib")
//#pragma comment(lib, "strmiids")

const GUID CLSID_SystemDeviceEnum = {0x62be5d10,0x60eb,0x11d0,{0xbd,0x3b,0x0,0xa0,0xc9,0x11,0xce,0x86}};
const GUID CLSID_AudioInputDeviceCategory = {0x33d9a762,0x90c8,0x11d0,{0xbd,0x43,0x0,0xa0,0xc9,0x11,0xce,0x86}};
const GUID CLSID_VideoInputDeviceCategory = {0x860bb310,0x5d01,0x11d0,{0xbd,0x3b,0x0,0xa0,0xc9,0x11,0xce,0x86}};
const GUID IID_ICreateDevEnum = {0x29840822,0x5b84,0x11d0,{0xbd,0x3b,0x0,0xa0,0xc9,0x11,0xce,0x86}};

HRESULT EnumerateDevices(REFGUID category, IEnumMoniker **ppEnum)
{
    // Create the System Device Enumerator.
    ICreateDevEnum *pDevEnum;
    HRESULT hr = CoCreateInstance(&CLSID_SystemDeviceEnum, NULL, 
        CLSCTX_INPROC_SERVER, &IID_ICreateDevEnum, (void**)&pDevEnum);

    if (SUCCEEDED(hr))
    {
        // Create an enumerator for the category.
        hr = pDevEnum->lpVtbl->CreateClassEnumerator(pDevEnum, category, ppEnum, 0);
        if (hr == S_FALSE)
        {
            hr = VFW_E_NOT_FOUND;  // The category is empty. Treat as an error.
        }
        pDevEnum->lpVtbl->Release(pDevEnum);
    }
    return hr;
}


void DisplayDeviceInformation(IEnumMoniker *pEnum)
{
    IMoniker *pMoniker = NULL;

    while (pEnum->lpVtbl->Next(pEnum, 1, &pMoniker, NULL) == S_OK)
    {
        IPropertyBag *pPropBag;
        HRESULT hr = pMoniker->lpVtbl->BindToStorage(pMoniker, 0, 0, &IID_IPropertyBag, (void**)&pPropBag);
        if (FAILED(hr))
        {
            pMoniker->lpVtbl->Release(pMoniker);
            continue; 
        }

        VARIANT var;
        VariantInit(&var);

        // Get description or friendly name.
        hr = pPropBag->lpVtbl->Read(pPropBag, L"Description", &var, 0);
        if (FAILED(hr))
        {
            hr = pPropBag->lpVtbl->Read(pPropBag, L"FriendlyName", &var, 0);
        }
        if (SUCCEEDED(hr))
        {
            printf("%ls\n", var.bstrVal);
            VariantClear(&var);
        }

        //hr = pPropBag->lpVtbl->Write(pPropBag, L"FriendlyName", &var);

        // WaveInID applies only to audio capture devices.
        hr = pPropBag->lpVtbl->Read(pPropBag, L"WaveInID", &var, 0);
        if (SUCCEEDED(hr))
        {
            printf("WaveIn ID: %d\n", var.lVal);
            VariantClear(&var);
        }

        hr = pPropBag->lpVtbl->Read(pPropBag, L"DevicePath", &var, 0);
        if (SUCCEEDED(hr))
        {
            // The device path is not intended for display.
            printf("Device path: %ls\n", var.bstrVal);
            VariantClear(&var);
        }

        pPropBag->lpVtbl->Release(pPropBag);
        pMoniker->lpVtbl->Release(pMoniker);
    }
}

int main(void)
{
    HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    if (SUCCEEDED(hr))
    {
        IEnumMoniker *pEnum;

        hr = EnumerateDevices(&CLSID_VideoInputDeviceCategory, &pEnum);
        if (SUCCEEDED(hr))
        {
            DisplayDeviceInformation(pEnum);
            pEnum->lpVtbl->Release(pEnum);
        }
        hr = EnumerateDevices(&CLSID_AudioInputDeviceCategory, &pEnum);
        if (SUCCEEDED(hr))
        {
            DisplayDeviceInformation(pEnum);
            pEnum->lpVtbl->Release(pEnum);
        }
        CoUninitialize();
    }
    return 0;
}
icspring camera
Device path: \\?\usb#vid_32e6&pid_9005&mi_00#7&11de6da0&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global


Interesting project:
DirectShow Camera Project