Version 1.03.0

For other topics related to the FreeBASIC project or its community.
D.J.Peters
Posts: 8027
Joined: May 28, 2005 3:28
Contact:

Version 1.03.0

Postby D.J.Peters » Jul 02, 2015 0:39

Thank you DKL you are my hero :-)

Do you have a air conditioner ? it's too warm here.

Joshy
srvaldez
Posts: 2456
Joined: Sep 25, 2005 21:54

Re: Version 1.03.0

Postby srvaldez » Jul 02, 2015 1:26

I agree with D.J.Peters, thank you DKL :)
VANYA
Posts: 1370
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: Version 1.03.0

Postby VANYA » Jul 02, 2015 7:21

Hi ALL!

dkl! Thank you for the new version!

Now the problems:

This type of warning appears:

Code: Select all

...
? sizeof(INITCOMMONCONTROLSEX)
....


output:
FbTemp.bas(3) warning 37(1): Ambigious sizeof(), referring to type alias INITCOMMONCONTROLSEX, instead of procedure INITCOMMONCONTROLSEX

Code: Select all

...
? SIZEOF(PrintDlg)
? SizeOf(PAGESETUPDLG)
...


output:
FbTemp.bas(63) warning 37(1): Ambigious sizeof(), referring to type alias PRINTDLG, instead of procedure PRINTDLG
FbTemp.bas(113) warning 37(1): Ambigious sizeof(), referring to type alias PAGESETUPDLG, instead of procedure PAGESETUPDLG
fxm
Posts: 9698
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Version 1.03.0

Postby fxm » Jul 02, 2015 8:54

I too thank you for this latest release.
Good effort during the heat wave here!
fxm
Posts: 9698
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Version 1.03.0

Postby fxm » Jul 02, 2015 8:58

@VANYA

Have you seen this '[added]' in the changelog:
- len/sizeof/typeof will now warn if the given identifier is ambigious (i.e. if it could refer to both a type or a procedure/variable symbol), because currently the type will be preferred, which is typically unexpected, at least for len() on strings.
and the previous dkl's post:
viewtopic.php?p=208609#p208609
(in topic: viewtopic.php?f=3&t=23624)
Tourist Trap
Posts: 2880
Joined: Jun 02, 2015 16:24

Re: Version 1.03.0

Postby Tourist Trap » Jul 02, 2015 9:33

Hi,

Thanks to developers for the work done.
VANYA
Posts: 1370
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: Version 1.03.0

Postby VANYA » Jul 02, 2015 9:57

fxm wrote:@VANYA

Have you seen this '[added]' in the changelog:
- len/sizeof/typeof will now warn if the given identifier is ambigious (i.e. if it could refer to both a type or a procedure/variable symbol), because currently the type will be preferred, which is typically unexpected, at least for len() on strings.
and the previous dkl's post:
http://www.freebasic.net/forum/viewtopi ... 09#p208609
(in topic: http://www.freebasic.net/forum/viewtopi ... =3&t=23624)


No, not seen.

I understand this behavior to my created types. But now WinApi types will always give such notice. And it's not very nice.
dkl
Site Admin
Posts: 3211
Joined: Jul 28, 2005 14:45
Location: Germany

Re: Version 1.03.0

Postby dkl » Jul 02, 2015 14:03

Well, in those cases (type + procedure) the warning shouldn't be shown, because sizeof() can't be used on procedures anyways. So these are false-positives, that should be easy to fix though.
dodicat
Posts: 6543
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: Version 1.03.0

Postby dodicat » Jul 02, 2015 18:33

D.J.Peters wrote:Thank you DKL you are my hero :-)

Do you have a air conditioner ? it's too warm here.

Joshy


The heat wave hasn't reached here yet.

But, in the very slim chance that it might, I popped down to Lidl's today and plugged it in to Version 1.03.0 thanks to dkl.

Code: Select all



Dim as string zz = _
"C4278241280BM498,197M+24,2M+17,15M+12,47M+0,61M+-3,78"_
&"M+0,63M+3,77M+44,36M+43,13M+58,-3M+69,-3"_
&"M+25,7M+7,53M+2,9M+-509,-4M+18,-66M+24,-5"_
&"M+67,-5M+73,-22M+6,-77M+-1,-134M+-2,-96M+4,-38"_
&"M+20,-8"_
&"BM+6,205P4287401100,4278241280"_
&"BM+-37,149M+97,0"_
&"BM+-41,65"_
&"P4282598211,4278241280"
Dim as string zz2 = _
"C1BM501,250M500,250M+-49,-100"_
&"M+99,0M+-50,99M+100,-50M+-1,100M+-98,-51M+48,98"_
&"M+-98,3M+49,-100M+-98,49M+-3,-100M+102,50"_
&"BM+-10,-67"_
&"P4294904576,1"_
&"BM+-62,67P4294904576,1"_
&"BM+133,-3P4294904576,1"_
&"BM+-63,61P4294904576,1"

Dim as string zz3 = _
"C4294967295BM498,149M+1,50M+-2,47M+2,201"_
&"BM+152,-198"_
&""_
&"BM+49,1M+-200,1M+-201,-2"_
&"BM+4,-77M+36,-75"_
&"M+63,-46M+93,-4M+101,-1M+65,60M+33,94M+5,51"_
&"M+-8,58M+-36,63M+-78,64M+-77,11M+-112,-34M+-77,-50"_
&"M+-16,-91M+8,-100"_
&"BM+20,-37M+5,238"_
&"BM+31,-292M+2,315"_
&""_
&"BM+37,-339M+2,358"_
&"BM+31,-366M+3,379"_
&"BM+36,-379M+5,390"_
&""_
&"BM+52,-394M+6,395"_
&"BM+30,-392M+10,382"_
&"BM+30,-374M+3,352"_
&""_
&"BM+34,-320M+1,297"_
&"BM+44,-204M+-6,148"_
&"BM+-323,-243M+284,1"_
&""_
&"BM+-316,37M+0,0M+343,1"_
&"BM+-360,41M+379,9"_
&""_
&"BM+-386,27M+394,-1"_
&"BM+-396,45M+401,-2"_
&"BM+-400,52M+397,1"_
&""_
&"BM+-388,42M+357,16"_
&"BM+-321,31M+289,3"_
&"BM+-215,34M+175,0"_
&""


Screen 20,32
dim as integer a
do
    a+=1
    screenlock
    cls
draw "Ta" &0
Draw zz
draw "Ta" &a
draw zz2
draw "Ta" &0
draw zz3
screenunlock
sleep 1,1
loop until len(inkey)
Sleep


 

P.S.
I was running this on the GIT version 1.03.0 -- OK
When I run on the official version 1.03.0 it flashes red (paint overspill).
I wonder why?

i've had a look:
Doesn't flash when using 11/9/2014 libfbgfx.a, but flashes when using 1/7/2015 libfbgfx.a

Anyways, 1/7/2015 libfbgfx.a seems sound (I have tested some similar code).
So I have edited the above code.
counting_pine
Site Admin
Posts: 6210
Joined: Jul 05, 2005 17:32
Location: Manchester, Lancs

Re: Version 1.03.0

Postby counting_pine » Jul 02, 2015 21:50

I did some work on Draw not long ago. I changed the way lines are drawn at arbitrary angles, so that they are drawn like normal Lines - a lot faster and potentially smoother.
I haven't run your code, but if it relies on pixel precision then it might just be that there are tiny gaps because lines end in slightly different places, rather than due to a new bug.

Oh, I also fixed the positioning of Paint commands - before, there was a good chance of them being a pixel out, particularly if you were using whole numbers. I can't remember if that was at the same time though..
dodicat
Posts: 6543
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: Version 1.03.0

Postby dodicat » Jul 02, 2015 21:59

Thanks counting_pine
I think it was due to a pixel out.
I use my own little thingy for drawing shapes, I drew some more and painted them, just being careful where the lines ended.
They were just fine.
Thank again.
counting_pine
Site Admin
Posts: 6210
Joined: Jul 05, 2005 17:32
Location: Manchester, Lancs

Re: Version 1.03.0

Postby counting_pine » Jul 02, 2015 22:05

Regarding the sizeof(ambiguous_name) warnings, I think we need a way (if we don't already) of indicating that the type name is truly the desired choice.
There are some kludgy ways like prepending Const, or maybe typeof(*cast(ambiguous_name ptr,0)), but obviously they aren't ideal.
The simplest idea I can think of is to have a keyword parameter first, maybe Type for types or Var for expressions (if 'typeof((expr))' doesn't feel too much like a cheat).
So, for example, 'sizeof(type, T)'.
One catch, internally, is we'd just have to be careful to make sure it is really 'Type ,' and not something like 'Type<T>(...)'.
grindstone
Posts: 726
Joined: May 05, 2015 5:35
Location: Germany

Re: Version 1.03.0

Postby grindstone » Jul 03, 2015 10:03

Great work!

Till now the new version works here with absolutely no problems!

Regards
grinddstone
Dinosaur
Posts: 1348
Joined: Jul 24, 2005 1:13
Location: Hervey Bay
Contact:

Re: Version 1.03.0

Postby Dinosaur » Jul 03, 2015 15:22

Hi All

Great to see FB moving ahead, many thanks to the developers.

Using the Dos version my app compiled without problems.
Compiling the same app with Win32 shows that "load_font" is missing from "liballegro.dll.a"
liballeg.a is not included with the Dos version.

Replacing it with my older version solves the problem.
However my older version is about 62k larger.

Is this a simple oversight ? or have a lot of the functions been eliminated or do they cause clashes with other libraries ?

Regards
aloberoger
Posts: 482
Joined: Jan 13, 2009 19:23

Re: Version 1.03.0

Postby aloberoger » Jul 03, 2015 16:51

Good work ,thank you for that too
once again a suggestion; FB supports the virtual classes since version 0.91 I believe
and always one dodges the declarations referencing virtual classes in the headers there.
Here is simple the first two files to extend Win/guiddef.bi and Win/Unknownbase.bi
the small made modifications are easy to include/understand.
These two headers wided, one can extend the other headers according to the needs, but the first two are necessary
guidef.bi

Code: Select all

'' FreeBASIC binding for mingw-w64-v4.0.1

#pragma once

#include once "_mingw.bi"



#define GUID_DEFINED

type _GUID
   Data1 as ulong
   Data2 as ushort
   Data3 as ushort
   Data4(0 to 7) as ubyte
end type

type GUID as _GUID


 

#Ifdef DEFINE_GUID
#undef DEFINE_GUID
#EndIf

 
#Define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN Name As Const GUID  : Dim Name As Const GUID= ( l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } )
#Define DEFINE_OLEGUID(name, l, w1, w2) DEFINE_GUID (name, l, w1, w2, &hc0, 0, 0, 0, 0, 0, 0, &h46)


#define _GUIDDEF_H_
#define __LPGUID_DEFINED__
type LPGUID as GUID ptr
#define __LPCGUID_DEFINED__
type LPCGUID as const GUID ptr
#define __IID_DEFINED__
type IID as GUID
type LPIID as IID ptr
#define IID_NULL GUID_NULL
#define CLSID_DEFINED
type CLSID as GUID
type LPCLSID as CLSID ptr
#define CLSID_NULL GUID_NULL
type FMTID as GUID
type LPFMTID as FMTID ptr
#define FMTID_NULL GUID_NULL
#define IsEqualFMTID(rfmtid1, rfmtid2) IsEqualGUID(rfmtid1, rfmtid2)
#define _REFGUID_DEFINED
type REFGUID as const GUID const ptr
#define _REFIID_DEFINED
type REFIID as const IID const ptr
#define _REFCLSID_DEFINED
type REFCLSID as const IID const ptr
#define _REFFMTID_DEFINED
type REFFMTID as const IID const ptr
#define _SYS_GUID_OPERATORS_
#define InlineIsEqualGUID(rguid1, rguid2) (((((@(rguid1)->Data1)[0] = (@(rguid2)->Data1)[0]) andalso ((@(rguid1)->Data1)[1] = (@(rguid2)->Data1)[1])) andalso ((@(rguid1)->Data1)[2] = (@(rguid2)->Data1)[2])) andalso ((@(rguid1)->Data1)[3] = (@(rguid2)->Data1)[3]))
#define IsEqualGUID(rguid1, rguid2) (memcmp(rguid1, rguid2, sizeof(GUID)) = 0)
#define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2)

Private Operator  = OverLoad( ByRef guid1 As GUID  , ByRef guid2 As GUID) As BOOL
     return IsEqualGUID(@guid1,@guid2)
End Operator

Private Operator  = OverLoad( ByVal guid1 As GUID ptr , ByRef guid2 As GUID) As BOOL
     return IsEqualGUID(guid1,@guid2)
End Operator

Private Operator  = OverLoad( ByRef guid1 As GUID  , ByRef guid2 As GUID Ptr) As BOOL
     return IsEqualGUID(@guid1,guid2)
End Operator

Private  Operator  <> OverLoad( ByRef guid1 As GUID  , ByRef guid2 As GUID) As BOOL
     return Not(IsEqualGUID(@guid1,@guid2))
End Operator

Private Operator  <> OverLoad( ByVal guid1 As GUID ptr , ByRef guid2 As GUID) As BOOL
     return Not(IsEqualGUID(guid1,@guid2))
End Operator

Private Operator <> OverLoad( ByRef guid1 As GUID  , ByRef guid2 As GUID Ptr) As BOOL
     return Not(IsEqualGUID(@guid1,guid2))
End Operator


#define _SYS_GUID_OPERATOR_EQ_

operator are quite usefull

Unknownbase.bi

Code: Select all

'' FreeBASIC binding for mingw-w64-v4.0.1

#pragma once

extern "Windows"

#define __unknwnbase_h__
#define __IUnknown_FWD_DEFINED__
#define __AsyncIUnknown_FWD_DEFINED__
#define __IClassFactory_FWD_DEFINED__
#define __IUnknown_INTERFACE_DEFINED__
type IUnknown as IUnknown_
type LPUNKNOWN as IUnknown ptr
extern IID_IUnknown as const GUID

#Ifndef _FB_COM_VTBL_
type IUnknown_ extends object
   Declare abstract Function QueryInterface( byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   Declare abstract Function AddRef() as ULONG
   Declare abstract Function Release() as ULONG
end Type

#Else

type IUnknownVtbl
   QueryInterface as function(byval This as IUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   AddRef as function(byval This as IUnknown ptr) as ULONG
   Release as function(byval This as IUnknown ptr) as ULONG
end type

type IUnknown_
   lpVtbl as IUnknownVtbl ptr
end type

#define IUnknown_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
#define IUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IUnknown_Release(This) (This)->lpVtbl->Release(This)

#EndIf

declare function IUnknown_QueryInterface_Proxy(byval This as IUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
declare sub IUnknown_QueryInterface_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function IUnknown_AddRef_Proxy(byval This as IUnknown ptr) as ULONG
declare sub IUnknown_AddRef_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function IUnknown_Release_Proxy(byval This as IUnknown ptr) as ULONG
declare sub IUnknown_Release_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
#define __AsyncIUnknown_INTERFACE_DEFINED__
extern IID_AsyncIUnknown as const GUID
type AsyncIUnknown as AsyncIUnknown_

#Ifndef _FB_COM_VTBL_
type AsyncIUnknown_ extends Iunknown
   Declare abstract Function Begin_QueryInterface(ByVal riid as const IID const ptr) as HRESULT
   Declare abstract Function Finish_QueryInterface(ByVal ppvObject as any ptr ptr) as HRESULT
   Declare abstract Function Begin_AddRef() as HRESULT
   Declare abstract Function Finish_AddRef() as ULONG
   Declare abstract Function Begin_Release() as HRESULT
   Declare abstract Function Finish_Release() as ULONG
End Type

#Else

type AsyncIUnknownVtbl
   QueryInterface as function(byval This as AsyncIUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   AddRef as function(byval This as AsyncIUnknown ptr) as ULONG
   Release as function(byval This as AsyncIUnknown ptr) as ULONG
   Begin_QueryInterface as function(byval This as AsyncIUnknown ptr, byval riid as const IID const ptr) as HRESULT
   Finish_QueryInterface as function(byval This as AsyncIUnknown ptr, byval ppvObject as any ptr ptr) as HRESULT
   Begin_AddRef as function(byval This as AsyncIUnknown ptr) as HRESULT
   Finish_AddRef as function(byval This as AsyncIUnknown ptr) as ULONG
   Begin_Release as function(byval This as AsyncIUnknown ptr) as HRESULT
   Finish_Release as function(byval This as AsyncIUnknown ptr) as ULONG
end type

type AsyncIUnknown_
   lpVtbl as AsyncIUnknownVtbl ptr
end type

#define AsyncIUnknown_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
#define AsyncIUnknown_AddRef(This) (This)->lpVtbl->AddRef(This)
#define AsyncIUnknown_Release(This) (This)->lpVtbl->Release(This)
#define AsyncIUnknown_Begin_QueryInterface(This, riid) (This)->lpVtbl->Begin_QueryInterface(This, riid)
#define AsyncIUnknown_Finish_QueryInterface(This, ppvObject) (This)->lpVtbl->Finish_QueryInterface(This, ppvObject)
#define AsyncIUnknown_Begin_AddRef(This) (This)->lpVtbl->Begin_AddRef(This)
#define AsyncIUnknown_Finish_AddRef(This) (This)->lpVtbl->Finish_AddRef(This)
#define AsyncIUnknown_Begin_Release(This) (This)->lpVtbl->Begin_Release(This)
#define AsyncIUnknown_Finish_Release(This) (This)->lpVtbl->Finish_Release(This)

#EndIf

declare function AsyncIUnknown_Begin_QueryInterface_Proxy(byval This as AsyncIUnknown ptr, byval riid as const IID const ptr) as HRESULT
declare sub AsyncIUnknown_Begin_QueryInterface_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function AsyncIUnknown_Finish_QueryInterface_Proxy(byval This as AsyncIUnknown ptr, byval ppvObject as any ptr ptr) as HRESULT
declare sub AsyncIUnknown_Finish_QueryInterface_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function AsyncIUnknown_Begin_AddRef_Proxy(byval This as AsyncIUnknown ptr) as HRESULT
declare sub AsyncIUnknown_Begin_AddRef_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function AsyncIUnknown_Finish_AddRef_Proxy(byval This as AsyncIUnknown ptr) as ULONG
declare sub AsyncIUnknown_Finish_AddRef_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function AsyncIUnknown_Begin_Release_Proxy(byval This as AsyncIUnknown ptr) as HRESULT
declare sub AsyncIUnknown_Begin_Release_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function AsyncIUnknown_Finish_Release_Proxy(byval This as AsyncIUnknown ptr) as ULONG
declare sub AsyncIUnknown_Finish_Release_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
#define __IClassFactory_INTERFACE_DEFINED__
type IClassFactory as IClassFactory_
type LPCLASSFACTORY as IClassFactory ptr
extern IID_IClassFactory as const GUID

#Ifndef _FB_COM_VTBL_
type IClassFactory_ extends Iunknown
   Declare abstract Function CreateInstance(ByVal pUnkOuter as IUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   Declare abstract Function LockServer(ByVal fLock as WINBOOL) as HRESULT
end Type

#Else

type IClassFactoryVtbl
   QueryInterface as function(byval This as IClassFactory ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   AddRef as function(byval This as IClassFactory ptr) as ULONG
   Release as function(byval This as IClassFactory ptr) as ULONG
   CreateInstance as function(byval This as IClassFactory ptr, byval pUnkOuter as IUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
   LockServer as function(byval This as IClassFactory ptr, byval fLock as WINBOOL) as HRESULT
end type

type IClassFactory_
   lpVtbl as IClassFactoryVtbl ptr
end type

#define IClassFactory_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
#define IClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IClassFactory_Release(This) (This)->lpVtbl->Release(This)
#define IClassFactory_CreateInstance(This, pUnkOuter, riid, ppvObject) (This)->lpVtbl->CreateInstance(This, pUnkOuter, riid, ppvObject)
#define IClassFactory_LockServer(This, fLock) (This)->lpVtbl->LockServer(This, fLock)

#EndIf

declare function IClassFactory_RemoteCreateInstance_Proxy(byval This as IClassFactory ptr, byval riid as const IID const ptr, byval ppvObject as IUnknown ptr ptr) as HRESULT
declare sub IClassFactory_RemoteCreateInstance_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function IClassFactory_RemoteLockServer_Proxy(byval This as IClassFactory ptr, byval fLock as WINBOOL) as HRESULT
declare sub IClassFactory_RemoteLockServer_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
declare function IClassFactory_CreateInstance_Proxy(byval This as IClassFactory ptr, byval pUnkOuter as IUnknown ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
declare function IClassFactory_CreateInstance_Stub(byval This as IClassFactory ptr, byval riid as const IID const ptr, byval ppvObject as IUnknown ptr ptr) as HRESULT
declare function IClassFactory_LockServer_Proxy(byval This as IClassFactory ptr, byval fLock as WINBOOL) as HRESULT
declare function IClassFactory_LockServer_Stub(byval This as IClassFactory ptr, byval fLock as WINBOOL) as HRESULT

end extern

Return to “Community Discussion”

Who is online

Users browsing this forum: No registered users and 5 guests