Stable API's for GRC 2010 - simulation function needed
Dear gurus,
I have an ABAP application I want to integrate with GRC 2010 (on the ABAP stack). I understand this is ramp-up and not all API's are available yet, but need one which is pretty basic so was hoping it would exist with documentation and is released.
My intention:
1) The user with various authorizations already exists.
2) My application wants to generate an additional role for the user because they are missing some auths during testing of the roles.
3) Each authorization generated should call the GRC API to simulate whether this would cause an SOD for the user.
4) I will generate and assign anyway, but export those authorizations for which SOD warning messages were raised.
5) Messages are logged for rework / mitigation, but the role build and test can continue.
Is there any documented API with a stable interface for a function which returns messages based information for SOD's which can be reacted to for an existing user and all their ABAP authorization object based auths AND a simulation of whether authorization data sent to it would produce an SOD.
Plan B would be to generate the role and simulate the assignment and return messages of which auths in the role caused the SOD.
I would expect that GRC is open minded enough to release such APIs to the ruleset , but if I am mistaken then "show stopper" answers are also appreciated as being a lesser evil...
Cheers,
Julius
Thanks Supreet,
I know that GRC can do an SOD check and also simulation of an SOD check "as if" the user had an additional role (which you want to assign but know in advance whether that will cause an SOD conflict). In it's previous life on the ABAP stack it was known as "Risk Rerminator". I am aware of the "old" /VIRSA/ function modules and the coding technique they used.... but have some doubts that GRC 2010 still uses those nor the same approach, which is why I am looking for a stable API.
My application makes the assumption that GRC is already installed and wants to generate a role for a user based on a test case they are executing. In my UI where the trace data is being analyzed, I want to add some intuitive highlighting and warnings for SOD conflicts which would happen if the role were generated and assigned.
At this ponit in time, the role does not actually exist yet so ideally I would want to send the API the authorization data and not just the role name. I could however for simplicity sake generate the role anyway but need at least the API to tell me which authorizations in the role are causing the SoD conflict with the user's already existing authorizations.
I am very much hoping to find something like a BAPI_GRC_SIMULATE_SOD which is documented and stable and offers an import parameter with a structure something like this for the authorization data:
OBJECT CHARACTER 10
LFDNR NUMC 3
FIELD CHARACTER 10
LOW CHARACTER 40
HIGH CHARACTER 40
MODIFIER CHARACTER 12
MODDATE DATE
MODTIME TIME
... together with the user name of course, and then returns SOD warnings per OBJECT and LFDNR (which is just a sequencial number for the authorization instance).
Of course it only works if GRC is installed....
Cheers,
Julius
Edited by: Julius Bussche on Jan 27, 2011 7:56 AM
Similar Messages
-
API - method for Webdynpro Java iview functionality of Print
I know.. you would love to post me with n different blogs and forums discussion about how to print from webdynpro java application.
But lets read before what i am looking for..
There is standard "Print" function available on webdynpro for java iview.. and layout and all its just fine for us. though we want to trigger this event from a screen button. as going to iview properties is very user friendly.
I was looking for some iview api which can help me.. We are on NW 7.01 SP6 at the moment. And this is for standard ESS applications.
Thanks a lot for your inputs.
Regards,
SudhirHi
You can write Java program for printing. Call the java class from screen (button or Url). Also you can write the content to XMl file.open the xml file in action. so that u will get print preview and print option. -
Converting a VBScript for Exchange 2003 to Function the same for Exchange 2010
Converting a VBScript for Exchange 2003 to Function the same for Exchange 2010
Afternoon;
I've run into a problem at this time. We are currently looking into migrating from Exchange 2003 into Exchange 2010 and I'm finding that my normal data collection method is no longer usable in Exchange 2010. I have the script posted below as of
what I'm currently using to collect my information, I just need to know of a means to continue the collection when we move to the new Exchange server. Any assistance in getting this to function with Exchange 2010 would be great.
++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++
On Error Resume Next
'Date Stamp for File Name
Function TIMESTAMP
strDate = CDate(Date)
strDay = DatePart("d", strDate)
strMonth = DatePart("m", strDate)
strYear = DatePart("yyyy", strDate)
If strDay < 10 Then
strDay = "0" & strDay
End If
If strMonth < 10 Then
strMonth = "0" & strMonth
End If
TIMESTAMP = strYear & strMonth & strDay
End Function
'Drop Location Vars Set
DRP01 = 1
DRP02 = 1
'Live Check SQL04
strVIC = "SQL04"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_PingStatus Where Address = '" & strVIC & "'")
For Each objItem in colItems
DRP01 = objItem.StatusCode
Next
'Live Check FS02
strVIC = "FS02"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_PingStatus Where Address = '" & strVIC & "'")
For Each objItem in colItems
DRP02 = objItem.StatusCode
Next
'Setup STOREDIR Location
If DRP01 = 0 Then
STOREDIR = "\\SQL04\Email\Collected\" 'Primary Data Storage Location
Else
If DRP02 = 0 Then
STOREDIR = "\\FS02\Shared\MIS\Daniel\" 'Secondary Data Storage Location
Else
STOREDIR = "C:\Scripts\Logs\" 'Tertiary Data Storage Location
End If
End If
'STOREDIR Check for Availability
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(STOREDIR) Then
AVAIL = 1
Else
AVAIL = 0
End If
'Sets Failsafe STOREDIR
If AVAIL = 0 Then
STOREDIR = "C:\Scripts\" 'Last Chance DIR for Data Files
End If
'Sets Filename
FILENAME = TIMESTAMP & ".csv"
'Testing Purposes Only
'wscript.echo TIMESTAMP
'wscript.echo STOREDIR & vbNewLine & FILENAME & vbnewline & vbnewline & AVAIL
'Sets Process Variables
cComputerName = "EXCH02" ' Exchange Server Name or IP Address
DIM fso, ObjFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjFile = fso.CreateTextFile(STOREDIR & FILENAME, True)
'ObjFile.WriteLine("Date,Display Name,Size(KB)")
Const cWMINameSpace = "root/MicrosoftExchangeV2"
Const cWMIInstance = "Exchange_Mailbox"
Dim strWinMgmts
Dim objWMIExchange
Dim listExchange_Mailboxs
Dim objExchange_Mailbox
strWinMgmts = "winmgmts:{impersonationLevel=impersonate}!//" & cComputerName &"/" & cWMINameSpace
Set objWMIExchange = GetObject(strWinMgmts)
'Checks for Email Record and Records to File
If Err.Number <> 0 Then
ObjFile.WriteLine("ERROR:" & VBNEWLINE & Err.Number & VBNEWLINE & Err.Description)
Else
Set listExchange_Mailboxs = objWMIExchange.InstancesOf(cWMIInstance)
If (listExchange_Mailboxs.count > 0) Then
For Each objExchange_Mailbox in listExchange_Mailboxs
ObjFile.WriteLine(TIMESTAMP & "," & objExchange_Mailbox.MailboxDisplayName & "," & objExchange_Mailbox.Size)
Next
Else
ObjFile.WriteLine("WARNING: No Exchange_Mailbox instances were returned.")
End If
End If
ObjFile.Close
VBScript is what I prefer. All scripts must have a kill switch to manage them from a primary location. Mine, is an updater method.
VBScript is what I prefer. All scripts must have a kill switch to manage them from a primary location. Mine, is an updater method.Okay, then what about an alternative for getting the same result. The file associated in the article is too much. All we need is something simple for a single exchange server with 180 users. We only need to pull UserName and DataSize(KB).
I only need to collect two pieces of information from the exchange server and the third piece is forced due to the date of when the information was collected. This way I can sort and filter by Date and Name to see a trend of the users mailbox usage
size.
Every day this runs, it determines the date of the file which is also the first piece, then pulls from the exchange server the entire list of users (the second piece), and then the respective user's mailbox size in KB (the third piece). This all is
dropped into a CSV file later used to import into a database before being archived, done by a second task on the server. Later used by a shared Excel PowerPivot document among the department.
Those of us in the server admin group use this to, at a glance, see the collective size of email usage on the server. Mainly used as a means of catching an incident before it happens. We are currently keeping our users around a collective 80GB
of use out of the well received limit of 110GB on Exchange 2003 and limiting the user's ability to send and receive email by email quota is apparently not accepted for us to do. So we use this to determine who we need to visit and force archive their
email so the server doesn't fail due to the size limit.
VBScript is what I prefer. All scripts must have a kill switch to manage them from a primary location. Mine, is an updater method. -
Taskbar Jumplist anomalies for Word 2010 and Excel 2010
I am having problems with missing jumplists for Office 2010 products (Word and Excel) pinned on the Windows 7 taskbar, **BUT** have no problems with jumplists for Notepad and IE pinned on the taskbar.
Observation 1: I just upgraded from Office 2010 Starter to full Office 2010 by getting a product key. Full Office 2010 was installed on my laptop when I purchased it but only Starter was licensed. Full Office 2010 was unusable until the upgrade. I suspect
the leapfrog from Starter to full Office 2010 might have a part in this jumplist issue.
Observation 2: I can see from a DOS prompt that the AutomaticDestinations and CustomDestinations folders exist under Recent. However, from Windows Explorer I cannot see the 2 folders under Recent. (That may be a clue…if other people CAN see the 2 folders
from Windows Explorer.)
Observation 3: In DOS, I can see that both directories have files ending in -ms. I can also see updates (new files with fresh timestamps) from opening Word and Excel files in those 2 directories. It’s almost like Word and Excel don’t understand to go look
in those 2 directories after the Office upgrade, even though Windows 7 (?) generates the -ms files for the jumplist function.
Observation 4: Again, no problems with Notepad and IE jumplists. I can remove the files from the AutomaticDestinations folder and cause Notepad to have no jumplist items, and then restore them and Notepad has jumplist contents again.
Observation 5: I had no problem using jumplists with Word Starter and Excel Starter. All references to Office/Word/Excel Starter are now gone from the Starter button and All Programs - sent to Recycle bin. I deleted the Word Starter
and Excel Starter entries when I upgraded, but I just deleted the Microsoft Office Starter (Englisgh) entry under All Programs today...I thought it was a benign entry and wouldn't hurt since I wasn't using it. Maybe there's some corruption in registry
as a result of the mixture. Interestingly, I can drag a file created in Word Starter to the taskbar and it will try to pin it to the Word Starter taskbar "ghost" that's in the Recycle bin.
Any clues anyone? I have no large files in the two destination folders, and have only about 20 files total in each folder...far fewer than the 999 threshhold mentioned in one of the updates for Office 2010.
Thank you!I encountered exactly the same problem, and under exactly the same circumstances as the original poster (upgraded from Office Starter to Home and Business; jump lists worked fine in Starter, then stopped working for Excel and Word after upgrading).
Like the original poster, none of the various fixes found online corrected the problem, nor did re-installing Office.
I also tried what was suggested by Max Meng and created a new User Account. The problem occurred for the new account, just as it did with the old one.
After about 6 hours of fighting, I have finally solved the problem. The solution is not easy, fast or pretty.
What I did was uninstall Office (again) using the Control Panel. Then I ran a FixIt utility found here:
http://support.microsoft.com/kb/290301 (method 2)
My hope was that this would do additional registry clean-up. I knew from earlier attempts that this alone would not fix the problem, though.
Despite uninstalling twice, there were still a lot of references left in the registry to "Word Starter" and "Excel Starter". Likewise, there were still references to "WINWORDC.EXE" and "EXCELC.EXE", which are the starter versions of the executables.
So I went through the registry using RegEdit, and manually deleted every key which included those strings. The largest number of cases were file type definitions for various Word and Excel file extensions. When in doubt, I deleted entire tag
hierarchies for Word and Office file types, figuring that they would be restored when I reinstalled Office. In the process, I removed pretty much every reference to Word or Excel that I could find in the registry.
I also deleted any directory on my hard drive (in c:\Program Files(x86), c:\Program Data, and c:\Users\<name>\AppData which appeared to be related to Office.
Having done this, I reinstalled again, and the jump lists for Word and Excel now work.
In debugging the problem, I found that .automaticDestination-ms files (which contain the data behind the jump lists) were not being created when I opened Word or Excel documents; they *were* being created when I manually pinned individual files to the
taskbar, however.
I suspect that this might be due to the long hexadecimal filename being based on a hash of the application name, or what the system thinks is the application name based on the file type. Removing the references to "Word Starter" and "Excel Starter",
and the corresponding WINWORDC.EXE and EXCELC.EXE in the registry might have cleared up this problem.
Obviously this fix is potentially risky, and should only be attempted if you are comfortable editing the registry. Making a full system backup beforehand would be a wise precaution. For this specific case, however (broken jump lists after
upgrading from Starter to full Office) it would appear the only alternative is a clean install of Windows (to wipe the registry completely). -
Is there any API's for providing FTP using ssh port.
Currently we are having a requirement to FTP files only using ssh port(Secure FTP). Can anyone please suggest me an API which provides the FTP'ing operation using SSH port.
I am currently using a Sinetfactory thirdparty package from JScape for the Secure FTP functionality(FTP over SSH). But Sinetfactory package tranfer rate is much slower than the manual sftp(command-line run in linux server for manual ftp using ssh).
Since it is very slower than ordinary sftp(ftp over ssh), I thought of using other thirdparty FTP package which supports FTP using ssh port. Can anyone please suggest me a thirdparty package which will has the sftp functionality and with better transfer rate. -
Sending and receivind ADC coefficients from/to soundcard in VBA for Excel 2010
How to send and receive ADC coefficients from/to soundcard(mixer,microphone) in VBA for Excel 2010 (noncom. edition, x64) to Excel macros for DFT (from IDFT), IIR , user defined samples parser (special
noise generator, graphic s(t),S(jw), arg s(jw) soundcard AFR test ) ?
What .dll is need for this (without bass.dll)?Example from internet :
'This project needs a module and a form
'The form must contain two labels, two progressbars, a timer and a checkbox
'Paste this code into the form
Dim hmixer As Long ' mixer handle
Dim inputVolCtrl As MIXERCONTROL ' waveout volume control
Dim outputVolCtrl As MIXERCONTROL ' microphone volume control
Dim rc As Long ' return code
Dim ok As Boolean ' boolean return code
Dim mxcd As MIXERCONTROLDETAILS ' control info
Dim vol As MIXERCONTROLDETAILS_SIGNED ' control's signed value
Dim volume As Long ' volume value
Dim volHmem As Long ' handle to volume memory
Private Sub Form_Load()
Me.ScaleMode = vbTwips
Me.Caption = "Volume meter"
Label1.Move 0, 0
Label1.AutoSize = True
Label1.Caption = "Input level"
Label2.Move 0, 4 * Label1.Height
Label2.AutoSize = True
Label2.Caption = "Output level"
ProgressBar1.Move Label1.Width * 2, 0, 3375
ProgressBar2.Move Label1.Width * 2, Label2.Top, 3375
Check1.Move ProgressBar1.Left, ProgressBar1.Height
Check1.Caption = "Get Input"
Me.Move Me.Left, Me.Top, ProgressBar1.Width + ProgressBar1.Left + 10 * Screen.TwipsPerPixelX, ProgressBar2.Top + ProgressBar2.Height + 30 * Screen.TwipsPerPixelY
Timer1.Interval = 50
Timer1.Enabled = True
' Open the mixer specified by DEVICEID
rc = mixerOpen(hmixer, DEVICEID, 0, 0, 0)
If ((MMSYSERR_NOERROR <> rc)) Then
MsgBox "Couldn't open the mixer."
Exit Sub
End If
' Get the input volume meter
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_DST_WAVEIN, MIXERCONTROL_CONTROLTYPE_PEAKMETER, inputVolCtrl)
If (ok <> True) Then
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE, MIXERCONTROL_CONTROLTYPE_PEAKMETER, inputVolCtrl)
End If
If (ok = True) Then
ProgressBar1.Min = 0
ProgressBar1.Max = inputVolCtrl.lMaximum
Else
ProgressBar1.Enabled = False
MsgBox "Couldn't get wavein meter"
End If
' Get the output volume meter
ok = GetControl(hmixer, MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT, MIXERCONTROL_CONTROLTYPE_PEAKMETER, outputVolCtrl)
If (ok = True) Then
ProgressBar2.Min = 0
ProgressBar2.Max = outputVolCtrl.lMaximum
Else
ProgressBar2.Enabled = False
MsgBox "Couldn't get waveout meter"
End If
' Initialize mixercontrol structure
mxcd.cbStruct = Len(mxcd)
volHmem = GlobalAlloc(&H0, Len(volume)) ' Allocate a buffer for the volume value
mxcd.paDetails = GlobalLock(volHmem)
mxcd.cbDetails = Len(volume)
mxcd.cChannels = 1
End Sub
Private Sub Check1_Click()
If (Check1.Value = 1) Then
StartInput ' Start receiving audio input
Else
StopInput ' Stop receiving audio input
End If
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
' Process sound buffer if recording
If (fRecording) Then
For i = 0 To (NUM_BUFFERS - 1)
If inHdr(i).dwFlags And WHDR_DONE Then
rc = waveInAddBuffer(hWaveIn, inHdr(i), Len(inHdr(i)))
End If
Next
End If
' Get the current input level
If (ProgressBar1.Enabled = True) Then
mxcd.dwControlID = inputVolCtrl.dwControlID
mxcd.item = inputVolCtrl.cMultipleItems
rc = mixerGetControlDetails(hmixer, mxcd, MIXER_GETCONTROLDETAILSF_VALUE)
CopyStructFromPtr volume, mxcd.paDetails, Len(volume)
If (volume < 0) Then
volume = -volume
End If
ProgressBar1.Value = volume
End If
' Get the current output level
If (ProgressBar2.Enabled = True) Then
mxcd.dwControlID = outputVolCtrl.dwControlID
mxcd.item = outputVolCtrl.cMultipleItems
rc = mixerGetControlDetails(hmixer, mxcd, MIXER_GETCONTROLDETAILSF_VALUE)
CopyStructFromPtr volume, mxcd.paDetails, Len(volume)
If (volume < 0) Then volume = -volume
ProgressBar2.Value = volume
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If (fRecording = True) Then
StopInput
End If
GlobalFree volHmem
End Sub
'Paste this code into the module
Public Const CALLBACK_FUNCTION = &H30000
Public Const MM_WIM_DATA = &H3C0
Public Const WHDR_DONE = &H1 ' done bit
Public Const GMEM_FIXED = &H0 ' Global Memory Flag used by GlobalAlloc functin
Type WAVEHDR
lpData As Long
dwBufferLength As Long
dwBytesRecorded As Long
dwUser As Long
dwFlags As Long
dwLoops As Long
lpNext As Long
Reserved As Long
End Type
Type WAVEINCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * 32
dwFormats As Long
wChannels As Integer
End Type
Type WAVEFORMAT
wFormatTag As Integer
nChannels As Integer
nSamplesPerSec As Long
nAvgBytesPerSec As Long
nBlockAlign As Integer
wBitsPerSample As Integer
cbSize As Integer
End Type
Declare Function waveInOpen Lib "winmm.dll" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Declare Function waveInPrepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Declare Function waveInReset Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInStart Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInStop Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInUnprepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Declare Function waveInClose Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long
Declare Function waveInGetNumDevs Lib "winmm.dll" () As Long
Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
Declare Function waveInAddBuffer Lib "winmm.dll" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
Public Const MMSYSERR_NOERROR = 0
Public Const MAXPNAMELEN = 32
Public Const MIXER_LONG_NAME_CHARS = 64
Public Const MIXER_SHORT_NAME_CHARS = 16
Public Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Public Const MIXER_GETCONTROLDETAILSF_VALUE = &H0&
Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&
Public Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)
Public Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)
Public Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)
Public Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Public Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000
Public Const MIXERCONTROL_CT_CLASS_METER = &H10000000
Public Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&
Public Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
Public Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)
Public Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)
Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)
Public Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)
Public Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)
Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long) As Long
Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, ByVal pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long
Declare Function mixerGetID Lib "winmm.dll" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long
Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long
Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long
Declare Function mixerGetNumDevs Lib "winmm.dll" () As Long
Declare Function mixerMessage Lib "winmm.dll" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long
Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long
Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
Declare Sub CopyStructFromPtr Lib "kernel32" Alias "RtlMoveMemory" (struct As Any, ByVal ptr As Long, ByVal cb As Long)
Declare Sub CopyPtrFromStruct Lib "kernel32" Alias "RtlMoveMemory" (ByVal ptr As Long, struct As Any, ByVal cb As Long)
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Declare Function GlobalLock Lib "kernel32" (ByVal hmem As Long) As Long
Declare Function GlobalFree Lib "kernel32" (ByVal hmem As Long) As Long
Type MIXERCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
fdwSupport As Long
cDestinations As Long
End Type
Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Type MIXERCONTROLDETAILS_SIGNED
lValue As Long
End Type
Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Public i As Integer, j As Integer, rc As Long, msg As String * 200, hWaveIn As Long
Public Const NUM_BUFFERS = 2
Public format As WAVEFORMAT, hmem(NUM_BUFFERS) As Long, inHdr(NUM_BUFFERS) As WAVEHDR
Public Const BUFFER_SIZE = 8192
Public Const DEVICEID = 0
Public fRecording As Boolean
Function GetControl(ByVal hmixer As Long, ByVal componentType As Long, ByVal ctrlType As Long, ByRef mxc As MIXERCONTROL) As Boolean
' This function attempts to obtain a mixer control. Returns True if successful.
Dim mxlc As MIXERLINECONTROLS
Dim mxl As MIXERLINE
Dim hmem As Long
Dim rc As Long
mxl.cbStruct = Len(mxl)
mxl.dwComponentType = componentType
' Obtain a line corresponding to the component type
rc = mixerGetLineInfo(hmixer, mxl, MIXER_GETLINEINFOF_COMPONENTTYPE)
If (MMSYSERR_NOERROR = rc) Then
mxlc.cbStruct = Len(mxlc)
mxlc.dwLineID = mxl.dwLineID
mxlc.dwControl = ctrlType
mxlc.cControls = 1
mxlc.cbmxctrl = Len(mxc)
' Allocate a buffer for the control
'hmem = GlobalAlloc(&H40, Len(mxc))
hmem = GlobalAlloc(GMEM_FIXED, Len(mxc))
mxlc.pamxctrl = GlobalLock(hmem)
mxc.cbStruct = Len(mxc)
' Get the control
rc = mixerGetLineControls(hmixer, mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE)
If (MMSYSERR_NOERROR = rc) Then
GetControl = True
' Copy the control into the destination structure
CopyStructFromPtr mxc, mxlc.pamxctrl, Len(mxc)
Else
GetControl = False
End If
GlobalFree (hmem)
Exit Function
End If
GetControl = False
End Function
' Function to process the wave recording notifications.
Sub waveInProc(ByVal hwi As Long, ByVal uMsg As Long, ByVal dwInstance As Long, ByRef hdr As WAVEHDR, ByVal dwParam2 As Long)
If (uMsg = MM_WIM_DATA) Then
If fRecording Then
rc = waveInAddBuffer(hwi, hdr, Len(hdr))
End If
End If
End Sub
' This function starts recording from the soundcard. The soundcard must be recording in order to
' monitor the input level. Without starting the recording from this application, input level
' can still be monitored if another application is recording audio
Function StartInput() As Boolean
If fRecording Then
StartInput = True
Exit Function
End If
format.wFormatTag = 1
format.nChannels = 1
format.wBitsPerSample = 8
format.nSamplesPerSec = 8000
format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8
format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign
format.cbSize = 0
For i = 0 To NUM_BUFFERS - 1
hmem(i) = GlobalAlloc(&H40, BUFFER_SIZE)
inHdr(i).lpData = GlobalLock(hmem(i))
inHdr(i).dwBufferLength = BUFFER_SIZE
inHdr(i).dwFlags = 0
inHdr(i).dwLoops = 0
Next
rc = waveInOpen(hWaveIn, DEVICEID, format, 0, 0, 0)
If rc <> 0 Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
StartInput = False
Exit Function
End If
For i = 0 To NUM_BUFFERS - 1
rc = waveInPrepareHeader(hWaveIn, inHdr(i), Len(inHdr(i)))
If (rc <> 0) Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
End If
Next
For i = 0 To NUM_BUFFERS - 1
rc = waveInAddBuffer(hWaveIn, inHdr(i), Len(inHdr(i)))
If (rc <> 0) Then
waveInGetErrorText rc, msg, Len(msg)
MsgBox msg
End If
Next
fRecording = True
rc = waveInStart(hWaveIn)
StartInput = True
End Function
' Stop receiving audio input on the soundcard
Sub StopInput()
fRecording = False
waveInReset hWaveIn
waveInStop hWaveIn
For i = 0 To NUM_BUFFERS - 1
waveInUnprepareHeader hWaveIn, inHdr(i), Len(inHdr(i))
GlobalFree hmem(i)
Next
waveInClose hWaveIn
End Sub
Error if using winmm.dll, kernel32 in x64 mode -
Sequence of Installs of RTA and SCA files for GRC AC 5.3
Hello,
I would like to confirm the correct sequence of applying RTA and SCA files for GRC AC 5.3.
On ABAP Stack
1- Install VirsaNH RTA on ECC 6.0 System with SAINT
2- Install VirsaHR RTA on ECC 6.0 system which has SAP_HR
3- Install both VirsaNH RTA and VIRSAHR RTA on a system which is SAP HR
4- Install VIRSANH RTA on BI System. (There is no need of VirsaHR on BI system)
5- Install all Support Packages up to 10 or 11 for VIRSANH & VIRSAHR with SPAM
Next
On JAVA Stack
6- Install
VIRCC00_0.sca
VIRAE00_0.sca
VIRRE00_0.sca
VIRFF00_0.sca
7- Install VIRACLP00_0.sca
8- Then install VIRACCNTNT.SAR
9- Next install EP RTA VIREPRTA00_0.sca
10- Install all Java patches for the above components
Based on the above,
a- Plz confirm if the above sequence is right.
b- My question is can I install 6, 7,8, 9 with JSPM at once as one step?
c- Also can I install SCA files with JSPM first and then install RTA files on ABAP stack later?
d- Also we have BI system with ABAP & JAVA Stacks. Is VIRSANH sufficient for both ABAP & JAVA, or do we need an additonal RTA for BI JAVA ?
Thanks for your valuable inputs in advance.
Regards,
HaleemHi,
> 1- What is the UME of your BI Java stack ?
>
> Answer: We have installed BI JAVA, EP, EP Core, so we use SSO with EP and BI ABAP. So the portal is UME for BI Java stack.
>
Check below link which will answer your queries:
Java RTA for GRC 5.3
> 2- Check SAP Note 1174625 - Access Control 5.3 Java Support Pack Installation
>
> I checked the note 1174625, which says the following
>
> All of the sap.com/grc files have to be undeployed except the db and dictionary files for each component. The files that are NOT to be undeployed are:
>
> - sap.com/grc/ccxsysdb
> - sap.com/grc/aedict
> - sap.com/grc/redictionary
> - sap.com/grc/ffdb
>
> Since this is a GRC AC 5.3 install on a fresh Netweaver 7.0 EHP1 Java stack install, do I need to undeploy all the above components, before doing AC 5.3 install, as mentioned in the note.
>
This is used when you do upgrade your old GRC release to latest one. So if you are doing fresh install then you need not to do these steps.
> 3- Also this note 1174625 answers to most of my questions, but does not mention anything about VIRACCNTNT.SAR. Is >this SAR file installed on JAVA Stack or ABAP stack? Is there a OSS note on VIRACCNTNT.SAR?
>
This file contains Roles, Rules, functions for RAR, CUP, ERM etc. in txt files which you need to upload when you will do the configuration of GRC.
Thanks
Sunny -
UCM API Methods for PDF Water Marking and Time stamping ???
hi,
i am working on project, the requirment is we need to migrate from DMS (DIGI SAFE) To UCM.
here we need to approch through API, it should not through tool based functionality. document should be water marked and time stamped when we retrived the document through CIS.
is there ant UCM API's for water mark and time stamp ??? please provide the methods for it. is there any API mehtods for Document versioing ??
i am presently working windows 7 OS ? i am trying to install UCM 10gR3 in Windows 7 OS, will it support for UCM ??
any help would be apprciated.
Regards,
YTHi,
There are services in Content Server that will allow you to create revisions of existing items. For example, CHECKIN_UNIVERSAL service will check in a new revision of an item if that Content ID already exists. You can also checkout a document if needed using the CHECKOUT service. Please refer to the services reference guide for more details (http://download.oracle.com/docs/cd/E14571_01/doc.1111/e11011/toc.htm).
Regarding conversion and watermarking...
You don't have to call a service to convert or watermark a document. These features have to be configured on the server. If you configure the content server to convert Word documents to PDF, then whenever a Word document is checked in, the content server will automatically convert it to PDF. In addition, if you have PDFWatermarking enabled and configured, watermarks will be applied automatically as well. All you have to do is ensure the product is configured correctly for the formats you want, and then check in the document. When you retrieve a document (using the GET_FILE service for example), you can ask for the PDF version by passing additional parameters.
Please review the Application Administrators Guide (http://download.oracle.com/docs/cd/E14571_01/doc.1111/e10978/toc.htm) for info on enabling and configuring PDF Watermarking.
The doc links referenced above are for UCM 11g. The same docs are available for 10gR3 at http://download.oracle.com/docs/cd/E10316_01/ouc.htm.
--Vijay -
Revision: 19459
Revision: 19459
Author: [email protected]
Date: 2010-12-17 10:15:23 -0800 (Fri, 17 Dec 2010)
Log Message:
Security API change for auth sync sample/concept to work in WebLogic, WebSphere.
Adding the PrincipalConverter interface
Implement the converting principal in WebLogic and WebSphere login command
Modified Paths:
blazeds/trunk/modules/opt/src/weblogic/flex/messaging/security/WeblogicLoginCommand.java
blazeds/trunk/modules/opt/src/websphere/flex/messaging/security/WebSphereLoginCommand.jav a
Added Paths:
blazeds/trunk/modules/core/src/flex/messaging/security/PrincipalConverter.javaThanks for the reply dood... i've found the solution after several tries... i had to set the channel from the actionscript instead of depending on the Service-config.xml file like the following.. then it worked..
var cs:ChannelSet = new ChannelSet();
var chnl:Channel = new Channel();
var customChannel:Channel = new AMFChannel("my-amf", "http://localhost:8080/somehting/messagebroker/amf");
cs.addChannel(customChannel);
consumer = new Consumer();
consumer.channelSet = cs; -
I don't use Photoshop, I'm an Aperture guy.
I'm looking for software with similar functionality to Photoshop's Pixelbender / Oil Painting.
I'm especially interested in the bending of the pixels, along the lines of impressionist paintings - think van Gogh.
Any suggestions?If you are interested in computer simulated drawing and painting effects, have a look at the "ToonIt!" plug-in for Aperture. This will do some of the basic work for you, but you will have to do quite a lot of editing afterwards, to turn the image into a piece of art.
It might be easier, to do most of the drwing and painting yourself in the first place - ArtRage Deluxe is very versatile, if you have a large trackpad and pen.
For example: Applying a light ToonIt! effect "Impressionist2": The diagonal
cross-pattern is due to "Demo" mode - I have not yet bought the plug-in - it is rather expensive:
The original: -
I have dropdown on infopath form , and it receives data from sql server table , it works fine when i am running in preview mode , but when i am publishing form to sharepoint server and loading that form
i am getting this
You do not have permissions to access a database that contains data required for this form to function correctly.
Can you please help?
Thanks,try this one, if not yet
Convert the data connection to UDC (store it in a Data Connection Library within the same site collection as the form library). See if this works without any other changes, but if not, then...
Manually edit your UDC file in Notepad (or your preferred editor) so that the authentication line is not commented out and so that it references the name of the SSO target app you created.
For Type, use NTLM.
Ensure the user has rights to access the database
Also ensure the connection file has been approved - A sharepoint admin can access a non approved Ucdx file. Go to the connection library and approve the file
Also check this post having the similar issue:
http://social.technet.microsoft.com/Forums/en-US/3196bafd-4bc3-40ab-ac2b-d149d1c3e0fa/sharepoint-2010-error-you-do-not-have-permissions-to-access-a-database?forum=sharepointdevelopmentprevious
Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog -
Transport Rule MessageSizeOver for exchange 2010
Hi
I have an exchange 2010 SP3 RU 3 environment with edge transport server implemented. I want to Have Transport rules to limit message size going outside/coming inside on edge transport.
I recently found a solution with -messagesizeover switch for new-trasportrule command in exchange 2013. Unfortunately its unavailable in exchange 2010.
I am wondering if there is a workaround or update for exchange 2010 to add this functionality.
Thanks in advance
FarhadHi,
On Exchange 2010, there is no MessageSizeOver parameter when you create a transport rule. But you can limit the sending and receiving message size of the whole Exchange organization using the following cmdlet.
Set-TransportConfig -MaxReceiveSize xxx -MaxSendSize xxx
If you want to limit the sending and receiving messages size for a specific mailbox, you can use the cmdlet below.
Set-Mailbox xxx –MaxSendSize xxx –MaxReceiveSize xxx
Hope it helps.
Best regards,
Amy Wang
TechNet Community Support -
Google API Keys for GCM in Chromium looks like dont work
I am trying to use the service of Push Messaging function of Chrome(Chromium), theoretically I have to get a ChannelId where the communication would be established between the browser and Google Cloud Messaging(GCM), in Chrome I can get that Channel without problems, but in Chromium I don't get Channel, I don't get error, only I don't have anything, I contacted some people in the forums for Chromium and they suggest that the API keys for this funcionality(Google CLoud Messaging) maybe are not correct or there is a problem with the API keys embedded in the build of Chromium for Arch.
I don't know if this is the correct place to post this question, the people of Chromium suggested me that I contact to the package mantainer to reviwe if there is a problem with these API keys.
I am using Arch 3.9.4-1, Chromium 27.0.1453.93 (Build para desarrolladores 200836).
If this is not the correct place to post this kind of question and somebody knows where can I post it please tell me, and if somedoby can help me with my question I would be thankful.
Thanks in advance.Hi Gsaison,
Do you have any progress on these issues? Im working on the same solution right now (SWV + GoogleMaps JS v3 ) I've got some weird issue when i try to spawn a StageWebView inside a View on IOS, it appears inside a scroller and is not open for finger interaction anymore. I use the eskimo framework, but then again, nothing fancy going on there for the rest. I've tried all of the the stage.stageScaleMode options but non of them work. Got any help?
Kind regards,
Roy -
API support for color extraction feature
Is there API support for color extraction feature? if not, is
it scheduled?Hello, thanks for the post.
In order to provide the best user experience for color
extraction, we had to split the functionality between client-side
and server-side, so we are not able to offer an API for this
functionality at this time. We are, however, very interested in
feedback on what kinds of APIs are interesting to you and how you
are interested in using them, so folks, please let us know.
Current APIs, including the new Random theme browsing view
and to view comments to your themes, are available on the
kuler API
wiki. We've seen some really fabulous and creative use of the
kuler APIs, and we look forward to more.
Sami -
Unable to install rollup4 for Exchange 2010 SP3
Hi,
I'm unable to install KB2905616 on my multi-role Exchange 2010 SP3 server. The setup wizard gets stuck at "the setup wizard is generating native images for .NET assemblies........"
I know that this process will take some time to complete but I have waited 10 hours.
I've tried to reboot the server and restart the setup.
Exchange is functioning perfectly otherwise.
Any help would be greatly appreciated :)
/Søren EmigHi,
I recommend you check if the anti-virus has been disabled before you start the upgrade process.
If you didn't ,the update could fail or take an extended amount of time.
Also, disable all other third-party apps/plugins that might be installed (like backup agents).
In addition,the following articles for your reference:
Install the Latest Update Rollup for Exchange 2010
When you install an update rollup package, Exchange tries to connect to the certificate revocation list (CRL) Web site. Exchange examines the CRL list to verify the code signing certificate. (To download and view the CRL list, see
CodeSignPCA.crl.) If Exchange can't connect to the CRL Web site, the following symptoms may occur:
The installation takes a long time to complete.
You receive the following message during the installation: Creating native images for .Net assemblies
When Exchange isn't connected to the Internet, each CRL request must complete before the installation can continue.
To work around this issue and to reduce installation times, turn off the
Check for publisher’s certificate revocation option on the server that is being upgraded. Use the following steps:
Start Internet Explorer.
On the Tools menu, click Internet Options.
Click the Advanced tab, and then locate the Security section.
Clear the Check for publisher’s certificate revocation check box, and then click
OK.
After the update rollup installation is complete, select the Check for publisher’s certificate revocation option.
Generating NGEN images takes longer than expected
Hope this helps!
Thanks.
Niko Cheng
TechNet Community Support
Maybe you are looking for
-
FIM EVENT ID 3 when starting User Profile Synchronization service
I am having issues getting the USP Sync Service to start correctly in our 2013 Farm. We are using a named instance for this install and from what I have read, it looks like that is the issue. In the ULS I find this error "ERROR ILMPostSetupConfigu
-
Hi there, I've a runtime problem. I don't know until runtime which ejb my client program wishes to lookup. Is there anyway of creating/retrieving the instance of a bean at runtime and ivoking business methods on the remote interface dynamically. All
-
Running IOS 8.1. I have an issue when using safari. When a video plays, you cant see how much of the video has loaded. There no longer is a scrubbing bar. Once the video has reached the point of where it hasn't loaded to, the video is set into a loop
-
Client version after update to R2 CU1
Hi guys, I just updated SCCM from R2 to R2 CU1. I have distributed the four packets of CU1 to the distribution point and I checked with regedit and the console that the version is CU1 and .1203. But when I see properties for automatic upgrade of clie
-
HT1386 Can I sync video rentals on my ipad with my laptop?
Can I sync video rentals on my ipad with my laptop?