News:

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

Main Menu

Recent posts

#11
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
#12
Work in progress / Re: USB microscope
Last post by Vortex - December 22, 2025, 08:18:05 PM
Hi Timo,

I can't find an old WebCAM code right now.
Did you try some sites like the Internet Archive to find the software?

https://archive.org/
#13
Beginner questions / Re: how to remove a source cod...
Last post by Michele - December 22, 2025, 01:20:24 PM
Quote from: ddainelis1 on December 21, 2025, 05:33:09 PMthe explanation above sounds what I expected Pelles C should do.   I was hoping there would be a menu choice similar to the add files to delete files.  However, I need to figure out how to do a right click on the MacBook Air. 

again thank-yo for your help

You're welcome.
I don't have a MAC, but this Link should be helpful.
Some more help is available on APPLE site.
#14
Beginner questions / Re: how to remove a source cod...
Last post by John Z - December 21, 2025, 09:11:34 PM
Welcome to the forum.

If you can't figure out Maxbook air right click, let the forum know. There are manual edits that could be made, but not recommended so only last resort.

Also possible an Add-In might be created to add feature to the menu.

Best case though is search for method to right click, many things in "Windows" require it.

John Z
#15
Beginner questions / Re: how to remove a source cod...
Last post by ddainelis1 - December 21, 2025, 05:33:09 PM
Let me start out by saying thank-you for your help. 

now bit of history....  I'm retired and needed a mental challenge. so I'm attempting to resurrect an old Dartmouth basic interpreter(sp). So, 12 years ago while teaching c-101 at a local community college Pelles c was the tool used. I loved it. 12 years down the road my computer environment has changed as follows... an iMac m4, MacBook Air and a dell "sandwich" sized windows 11 box.  The W11 box has several legacy apps that only run under windows.  Pelles C is one of those apps.  I do  most of my Pelles C work from my MacBook Air via windows app.

the explanation above sounds what I expected Pelles C should do.   I was hoping there would be a menu choice similar to the add files to delete files.  However, I need to figure out how to do a right click on the MacBook Air. 

again thank-yo for your help
#16
Assembly discussions / Re: File downloader
Last post by Vortex - December 20, 2025, 11:17:55 AM
Concerning Windows 7 :

No TLS 1.3 support — only up through TLS 1.2 with updates and registry settings.
#17
Assembly discussions / Re: File downloader
Last post by TimoVJL - December 20, 2025, 11:01:07 AM
Thanks John, now we know detailed registry keys, that was from last Windows 7 update.
That schannel.dll might be last updated version, that add support for TLS 1.2
#18
Assembly discussions / Re: File downloader
Last post by John Z - December 19, 2025, 09:22:05 PM
Here is is without using screen shot -

Powershell -Command (Get-Item C:\Windows\System32\schannel.dll).VersionInfo.FileVersion   

6.1.7601.24545 (win7sp1_ldr_escrow.200102-1707)


Seems lost cause, suggest terminating further .. ?

John Z
#19
Assembly discussions / Re: File downloader
Last post by TimoVJL - December 19, 2025, 08:54:19 PM
I just lost all interst of this case.
#20
Assembly discussions / Re: File downloader
Last post by Vortex - December 19, 2025, 08:20:59 PM
Can you share the output of this command?

Powershell -Command (Get-Item C:\Windows\System32\schannel.dll).VersionInfo.FileVersion
On my system :

6.1.7601.24545 (win7sp1_ldr_escrow.200102-1707)